窗口函数有 over 关键字,指定函数执行的范围。可分为三部分:分组字句 (partition by),排序字句 (order by),滑动窗口字句 (rows)
1.4.1 例1:查询各班级总分

1.4.2 例2:查询各班级累计总分

1.4.3 分区子句(partition by)
1.4.4 排序子句(order by)
1.4.5 窗口子句(rows)
语法概述:
① 起始行:N preceding / unbounded preceding
② 当前行:current row
③ 终止行:N following / unbounded following
举例:
① 从分区内的前面所有行到当前行:rows between unbounded preceding and current row
② 从分区内的前面 2 行到当前行:rows between 2 preceding and current row
③ 从分区内的当前行到后面所有行:rows between current row and unbounded following
④ 从分区内的当前行到后面 3 行:rows between current row and 3 following
注意:
① partition by 分区字句后,若 order 排序子句后缺少 rows 窗口子句,窗口规范默认为:rows between unbounded preceding and current row
② partition by 分区字句后, 若 order 排序子句和 rows 窗口子句都缺少,窗口规范默认为:rows between unbounded preceding and unbounded following
1.4.6 总体执行流程
1.5.1 排序类函数

1.5.2 聚合类函数
1.5.3 跨行类函数

题目 1:查询每个学生成绩最高的三个学科(分组内 Top N 问题)

题目 2:查询每个学科都高于班级学科平均分的学生(汇总分析问题)

题目 1:查询每个部门工资最高的前三个员工信息(分组内 Top N 问题)

题目 2:查询员工工资占所属部门总工资的百分比(汇总分析问题)

题目 3:对各部门员工的工资进行升序排列,排名前 30% 为底层,30% - 80% 为中层,80% 以上为高层,并打上标签

题目 4:查询每年入职总数以及截至本年累计入职总人数(本年总入职人数 + 本年之前所有年的入职人数之和)

① 本文用窗口函数解决的 2 个主要问题:分区内 Top N 问题,汇总分析问题
② 分区内 Top N 公式
③ 窗口函数 → 生成辅助列(用于计算百分比等)
④ 重要:with 子句 → 生成临时表,把复杂的问题拆分成多个子问题,再用临时表表达
到此这篇MySQL窗口函数(mysql窗口函数有哪些)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/53660.html