SORT ========================= SORT 算子用于对输入的数据进行排序。 示例:对 t1 表的数据排序,并按照 c1 列降序排列和 c2 列升序排列 ```javascript obclient>CREATE TABLE t1(c1 INT, c2 INT); Query OK, 0 rows affected (0.12 sec) obclient>CREATE TABLE t2(c1 INT, c2 INT); Query OK, 0 rows affected (0.12 sec) obclient>EXPLAIN SELECT c1 FROM t1 ORDER BY c1 DESC, c2 ASC\G; *************************** 1. row *************************** Query Plan: ==================================== |ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ |0 |SORT | |3 |40 | |1 | TABLE SCAN|t1 |3 |37 | ==================================== Outputs & filters: ------------------------------------- 0 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC], [t1.c2, ASC]) 1 - output([t1.c1], [t1.c2]), filter(nil), access([t1.c1], [t1.c2]), partitions(p0) ``` 上述示例中,执行计划展示中 0 号算子 SORT 对 t1 表的数据进行排序,执行计划展示中的 outputs \& filters 详细展示了 SORT 算子的输出信息如下: | **信息名称** | **含义** | |-------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | output | 该算子的输出列。 | | filter | 该算子的过滤谓词。 由于示例中 SORT 算子没有设置 filter,所以为 nil。 | | sort_keys(\[column, DESC\],\[column, ASC\] ...) | 按 column 列排序。 * DESC:降序。 * ASC:升序。 例如,`sort_keys([t1.c1, DESC],[t1.c2, ASC])`中指定排序键分别为 c1 和 c2,并且以 c1 列降序, c2 列升序排列。 |