目录
2、distribute by 、sort by 、cluster by 、partition by
2.4、cluster by: (culster by = distribute by + sort by)
1、order by 和 group by
1.1、order by: 排序,属于全局排序
示例SQL:
# 查找所有学生,并按照年龄正序排序。
select * from student order by age;
1.2、goup by: 分区
示例SQL:
# 查找所有学生,并按照性别分组。
select * from studeng group by gender;
2、distribute by 、sort by 、cluster by 、partition by
2.1、distribute by: 分组
和 group by 不同的是,distribute by 经常在开窗函数中使用。
所谓开窗函数就是:明细数据和聚合函数一起使用时就会用到开窗函数。
语法格式:
over(distribute by colname[,colname.....])
2.2、sort by: 强制排序
sort by子句会让输入的数据强制排序 (强调:当使用排序时,窗口会在组内逐行变大)也是和开窗函数一起使用的。sort by 你可以理解为局部排序,order by 理解为全局排序。
语法格式:
over([distribute by colname] [sort by colname [desc|asc]])
注意:可以使用partition by + order by 组合来代替distribute by+sort by组合
2.3、partition by: 分
partition by 出镜率挺高,首先和group by 相比,它经常和开窗函数配合使用,和 distribute by 相比,它的使用频率高,一般可以替换,但是partition by 经常和 order by 一起使用,而distribute by 和 sort by 搭班使用。
2.4、cluster by: (culster by = distribute by + sort by)
cluster by 是distribute by + sort by的复合操作,就是说 当开窗函数中分组字段和排序字段是一个字段时,可以直接使用cluster by 。
标签:sort,partition,group,distribute,cluster,排序,order From: https://blog.csdn.net/m0_70691645/article/details/143472280