暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Greenplum窗口函数总结
1040
16页
1次
2020-05-17
5墨值下载
postgreSQL 窗口函数总结
postgreSQL 窗口函数总结
.................................................................................................................
1
窗口函数说明
.....................................................................................................................................
2
row_number/rank/dense_rank 的区别
.............................................................................................
2
窗口函数语句语法
.............................................................................................................................
2
1 准备数据
.........................................................................................................................................
3
1.1 创建测试的表 test1
.............................................................................................................
3
1.2 插入数据到 test1 表中
.......................................................................................................
3
2 rank over 窗口函数使用
.................................................................................................................
3
2.1 按照分区查看每行的个数
..................................................................................................
3
2.2 按照分区和排序查看每行的数据
.....................................................................................
4
2.3 查看每个部门最高的数据
..................................................................................................
4
3 row_number over 窗口函数的使用
..............................................................................................
5
3.1 显示数据的行
..................................................................................................................
5
3.1.1 顺序显示行号
...........................................................................................................
5
3.1.2 获取一段内的数据
...................................................................................................
5
3.2 显示分区的个
..................................................................................................................
6
3.3 按照 department 分组 wages 排序显示数据
....................................................................
6
3.4 查看每个部门的最高的数据
..............................................................................................
7
4 dense_rank 窗口函数使用
..............................................................................................................
7
4.1 rank dense_rank 的区
..................................................................................................
7
4.2 dense_rank 窗口函数的显示
..............................................................................................
7
4.3 rank 窗口函数的显示
..........................................................................................................
8
5 rank/row_number/dense_rank 比较
..............................................................................................
8
6 percent_rank 窗口函数的使用
......................................................................................................
9
6.1 计算分组中的比例
..............................................................................................................
9
7 grouping sets 函数的使用
............................................................................................................
10
7.1 先按照 wages 分组再按 department 进行分组
..........................................................
10
8 聚合函数+窗口函数使用
.............................................................................................................
11
8.1 查看一个部门的个数
........................................................................................................
11
8.2 统计每个部门 wages 之和
...........................................................................................
11
8.3 按照排序统计每个部门的 wages 之和
...........................................................................
12
8.4 按照分组和排序统计数据
................................................................................................
12
8.5 window 子句使用
...............................................................................................................
13
8.5.1 windom 子句的说
...............................................................................................
13
8.5.2 执行的 SQL 语句
....................................................................................................
13
8.6 窗口函数中的序列函数
....................................................................................................
14
8.6.1 序列函数的说明
.....................................................................................................
14
8.6.2 执行的语
.............................................................................................................
14
9 first_value\last_value 使用
............................................................................................................
15
9.1 first_value last_value 说明
............................................................................................
15
9.2 执行的 SQL
.........................................................................................................................
15
窗口函数说明
1我们都知道在 SQL 中有一类函数叫做聚合函数, sum()avg()max()等等,类函数可
以将多行数据按照规则聚集为一行,般来讲聚集后的行数是要少于聚集前的行数的,但是有
时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数。
2、在所有的 SQL 处理中,窗口函数都是最后一步执行,而且仅位 Order by 字句之前。
3Partition By 子句可以称为查询分区子,常类似于 Group By,都是将数据按照边界值分组,
Over 之前的函数在每一个分组之内进,如果超出了分组,则函数会重新计算
4order by 子句会让输入的数据强制排序。Order By 子句对于诸如 row_number()lead()
LAG()数是必的,因为如果据无序这些函数结果就没有任意义。此如果有
Order By 子句,则 count()min()等计算出来的结果就没有任何意义。
5、如果只使 partition by 子句,未指 order by 的话,我们的聚合是分组内的聚合。
6、当同一个 select 查询中存在多个窗口函数时,他们相互之间是没有影响的。
row_number/rank/dense_rank 的区
这三个窗口函数的使用场景非常多,区别分别为:
1row_number() 1 始,按照顺序,生成分组内记录的序列,row_number()的值不会存在
重复,当排序的值相同时,按照表中记录的顺序进行排
2rank() 生成数据项在分组中的排名,排名相等会在名次中留下空位
3dense_rank() 生成数据项在分组中的排名,排名相等会在名次中不会留下空位
注意:
rank dense_rank 的区别在于排名相等时会不会留下空位。
窗口函数语句语法
<
窗口函数
>
OVER ([PARTITION BY <
列清单
>]
ORDER BY <
排序用列清单
>)
over:
窗口函数关键
partition by:
对结果集进行分组
order by:
设定结果集的分组数据排序
聚合函数
:
聚合函数(
SUM
AVG
COUNT
MAX
MIN
of 16
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜