SQL

您所在的位置:网站首页 开窗函数lag SQL

SQL

2023-11-07 07:53| 来源: 网络整理| 查看: 265

目录

​​​​​OVER()函数

例子

lag()函数和lead()函数

 

​​​​​OVER()函数 OVER(PARTITION BY Year ORDER BY Month DESC ) 数据会根据Year字段进行分组,按照Month字段降序排列

OVER()利用Year进行分组,然后利用Month进行组内排序 

Alt

 加一些分析函数

比如row_number():可以在over函数执行的基础上对Month进行不重复排序

Alt

比如在over函数基础上加Rank()函数 ,就是随机那种了Month的话就会重复排序,并且over函数不相同的month——>不会保持原本的排序,比如1后面就直接56了

Alt

 如果想要保持顺序,我们可以用Dense_rank()函数将后面的元素进行跟序排序

Alt

 按班级进行分组,然后按成绩进行排序

sum(score) over(partition by class_id order by score desc) 根据班级ID进行分组,成绩降序排列,再将成绩依次递增 例子

每个部门进行薪水排名——>扩展:取每个部门的第一个或者最后一名

select department_id,rank() over(partition by department_id order by salary) from employees

查询每个学生的分数最高的前3门课程

SELECT * FROM( SELECT stu_id, ROW_NUMBER() OVER (PARTITION BY stu_id ORDER BY score DESC) AS score_ order, lesson_id, score FROM t_score) t WHERE score_order r and r is not null



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3