SQL窗口函数

SQL支持的窗口函数如下。

函数功能
ROW_NUMBER计算行号。从1开始递增。
RANK计算排名。排名可能不连续。
DENSE_RANK计算排名。排名是连续的。
PERCENT_RANK计算排名。输出百分比格式。
CUME_DIST计算累计分布。
NTILE将数据顺序切分成N等份,返回数据所在等份的编号(从1到N)。
LAG取当前行往前(朝分区头部方向)第N行数据的值。
LEAD取当前行往后(朝分区尾部方向)第N行数据的值。
FIRST_VALUE取当前行所对应窗口的第一条数据的值。
LAST_VALUE取当前行所对应窗口的最后一条数据的值。
NTH_VALUE取当前行所对应窗口的第N条数据的值。
CLUSTER_SAMPLE用户随机抽样。返回True表示该行数据被抽中。
COUNT计算窗口中的记录数。
MIN计算窗口中的最小值。
MAX计算窗口中的最大值。
AVG对窗口中的数据求平均值。
SUM对窗口中的数据求和。
MEDIAN计算窗口中的中位数。
STDDEV计算总体标准差。是STDDEV_POP的别名。
STDDEV_SAMP计算样本标准差。

使用限制

窗口函数的使用限制如下:

  • 窗口函数只能出现在select语句中。
  • 窗口函数中不能嵌套使用窗口函数和聚合函数。
  • 窗口函数不能和同级别的聚合函数一起使用。

windowing_definition

windowing_definition的语法声明如下。

--partition_clause:
[partition by <expression> [, ...]]
--orderby_clause:
[order by <expression> [asc|desc][nulls {first|last}] [, ...]]
[<frame_clause>]

将所有职工根据部门(deptno)分组(作为开窗列),每个组内根据薪水(sal)做降序排序,获得职工在自己组内的序号。命令示例如下:

select deptno, ename, sal, row_number() over (partition by deptno order by sal desc) as nums from emp;

MaxComputeSQL支持的窗口函数的命令格式、参数及示例_云原生大数据计算服务 MaxCompute-阿里云帮助中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值