MapReduce服务 MRS-ORDER BY:ORDER BY

时间:2023-11-01 16:25:24

ORDER BY

ORDER BY子句用于按一个或多个输出表达式对结果集排序。

ORDER BY expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...]

每个expression可以由输出列组成,也可以是按位置选择输出列的序号。

ORDER BY子句在GROUP BY或HAVING子句之后,在OFFSET、LIMIT或FETCH FIRST子句之前进行计算。

按照SQL规范,ORDER BY子句只影响包含该子句的查询结果的行顺序。HetuEngine遵循该规范,并删除该子句的冗余用法,以避免对性能造成负面影响。

例如在执行INSERT语句时,ORDER BY子句不会对插入的数据产生影响,是个冗余的操作,会对整个INSERT语句的整体性能产生负面影响,因此HetuEngine会跳过ORDER BY操作。

  • ORDER BY只作用于SELECT子句:
    INSERT INTO some_tableSELECT * FROM another_tableORDER BY field;
  • ORDER BY冗余的例子是嵌套查询,不影响整个语句的结果:
    SELECT *FROM some_tableJOIN (SELECT * FROM another_table ORDER BY field) uON some_table.key = u.key;
support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_249070.html