| <!-- | |
| 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). |