更新时间:2026-07-03 GMT+08:00
CLUSTER BY
功能描述
CLUSTER BY子句用于根据指定字段对数据进行分桶,并在桶内按同一字段进行排序。CLUSTER BY等效于DISTRIBUTE BY和SORT BY使用相同字段的情况。
语法格式
SELECT projectItem [, ...] FROM table_reference CLUSTER BY expression [, ...]
参数说明
| 参数 | 说明 |
|---|---|
| expression | 分桶及排序表达式。支持单字段及多字段。CLUSTER BY根据指定字段的哈希值将数据分配到不同的桶中,并在桶内按同一字段排序。 |
注意事项
- CLUSTER BY只能按升序排序,不能指定ASC或DESC。如需指定排序方向,请使用DISTRIBUTE BY + SORT BY组合。
- CLUSTER BY等效于DISTRIBUTE BY和SORT BY使用相同字段。
示例
根据字段score进行分桶并桶内排序:
SELECT * FROM student CLUSTER BY score;
根据多字段分桶排序:
SELECT * FROM student CLUSTER BY class_id, score;
当需要指定降序时,使用DISTRIBUTE BY + SORT BY替代:
SELECT * FROM student DISTRIBUTE BY score SORT BY score DESC;
父主题: 排序