更新时间:2026-07-03 GMT+08:00
分享

SORT BY

功能描述

SORT BY子句用于在每个Reducer内对数据进行局部排序。与ORDER BY的全局排序不同,SORT BY只保证每个Reducer内的数据有序。

语法格式

SELECT projectItem [, ...] FROM
  table_reference SORT BY { expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ] } [, ...]

参数说明

参数

说明

expression

排序表达式,可以是列名或表达式。

ASC

升序排序,为默认选项。

DESC

降序排序。

NULLS FIRST

将NULL值排在排序结果的最前面。

NULLS LAST

将NULL值排在排序结果的最后面。

注意事项

  • SORT BY是局部排序,仅保证每个Reducer内的数据有序,不保证全局有序。
  • 如需全局排序,请使用ORDER BY。
  • SORT BY通常与DISTRIBUTE BY配合使用,先分桶再桶内排序。
  • SORT BY支持NULLS FIRST/LAST指定NULL值的排序位置。

示例

按score在Reducer内升序排序:

SELECT * FROM student SORT BY score; 

按score在Reducer内降序排序:

SELECT * FROM student SORT BY score DESC; 

与DISTRIBUTE BY配合使用:

SELECT * FROM student DISTRIBUTE BY class_id SORT BY score DESC; 

多字段排序并指定NULL值位置:

SELECT * FROM student SORT BY class_id ASC NULLS LAST, score DESC NULLS LAST;

相关文档