| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| |
| # Query Alignment Mode |
| |
| In addition, IoTDB supports another result set format: `ALIGN BY DEVICE`. |
| |
| ## align by device |
| |
| The `ALIGN BY DEVICE` indicates that the deviceId is considered as a column. Therefore, there are totally limited columns in the dataset. |
| |
| > NOTEļ¼ |
| > |
| > 1.You can see the result of 'align by device' as one relational table, `Time + Device` is the primary key of this Table. |
| > |
| > 2.The result is order by `Device` firstly, and then by `Time` order. |
| |
| The SQL statement is: |
| |
| ```sql |
| select * from root.ln.** where time <= 2017-11-01T00:01:00 align by device; |
| ``` |
| |
| The result shows below: |
| |
| ``` |
| +-----------------------------+-----------------+-----------+------+--------+ |
| | Time| Device|temperature|status|hardware| |
| +-----------------------------+-----------------+-----------+------+--------+ |
| |2017-11-01T00:00:00.000+08:00|root.ln.wf01.wt01| 25.96| true| null| |
| |2017-11-01T00:01:00.000+08:00|root.ln.wf01.wt01| 24.36| true| null| |
| |1970-01-01T08:00:00.001+08:00|root.ln.wf02.wt02| null| true| v1| |
| |1970-01-01T08:00:00.002+08:00|root.ln.wf02.wt02| null| false| v2| |
| |2017-11-01T00:00:00.000+08:00|root.ln.wf02.wt02| null| true| v2| |
| |2017-11-01T00:01:00.000+08:00|root.ln.wf02.wt02| null| true| v2| |
| +-----------------------------+-----------------+-----------+------+--------+ |
| Total line number = 6 |
| It costs 0.012s |
| ``` |
| ## Ordering in ALIGN BY DEVICE |
| |
| ALIGN BY DEVICE mode arranges according to the device first, and sort each device in ascending order according to the timestamp. The ordering and priority can be adjusted through `ORDER BY` clause. |
| |
| For details and examples, see the document [Order By](./Order-By.md). |