华为高斯数据库(GaussDB)提供了丰富的开窗函数(窗口函数)来处理复杂的数据分析任务。这些函数允许你在不减少行数的情况下,对数据进行分组、排序并在组内进行计算,非常适合各种高级分析场景。
下面表格汇总了GaussDB中主要的开窗函数及其用途:
| 函数类别 | 函数名称 | 功能描述 | 常用场景 |
|---|---|---|---|
| 专用窗口函数 | ROW_NUMBER() | 为组内每一行分配一个唯一的连续序号 | 行编号、分页展示 |
| RANK() | 对组内行进行排名,相同值排名相同,后续序号跳过 | 排名处理,如学生成绩排名 | |
| DENSE_RANK() | 对组内行进行排名,相同值排名相同,但后续序号连续 | 需要连续排名的场景 | |
| LAG() | 访问同一组内当前行之前第N行的数据 | 计算与上一行的差值,如日环比 | |
| LEAD() | 访问同一组内当前行之后第N行的数据 | 计算与下一行的差值 | |
| FIRST_VALUE() | 返回窗口帧中第一行的值 | 计算组内第一个值,如部门最早工资 | |
| LAST_VALUE() | 返回窗口帧中最后一行的值 | 计算组内最后一个值,需注意默认窗口范围 | |
| NTH_VALUE() | 返回窗口帧中第N行的值 | 获取组内特定顺序的值,如第二名成绩 | |
| NTILE() | 将组内数据分成指定数量的桶,并分配桶编号 | 数据分桶,如前20%用户分组 | |
| 聚合函数用作窗口函数 | SUM() | 计算组内指定列的总和 | 累计求和、分组求和 |
| AVG() | 计算组内指定列的平均值 | 计算平均值,如部门平均工资 | |
| COUNT() | 计算 |
华为高斯数据库开窗函数解析

最低0.47元/天 解锁文章
304

被折叠的 条评论
为什么被折叠?



