【SQL】开窗函数(排序)

您所在的位置:网站首页 sql中聚合函数 【SQL】开窗函数(排序)

【SQL】开窗函数(排序)

2023-06-29 22:21| 来源: 网络整理| 查看: 265

标准定义:开窗函数用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。

主要用来排序的开窗函数有:

row_number():直接按顺序排序,如果有重复值,也区分顺序的大小

dense_rank():直接按顺序排序,如果有重复值,序号并列,且序号连续(1,2,2,3)

rank():直接按顺序排序,如果有重复值,序号并列,之后的序号会跳过重复的顺序(1,2,2,4)

SQL举例:

with u as ( select id ,name ,phone ,work_type from user_info ), o as ( select order_id ,user_id ,create_time ,pay_time ,is_delete from order_info ) select date(create_time) as create_date ,u.id ,u.name ,o.order_id ,o.create_time ,row_number() over(partition by date(create_time) order by o.create_time) ,dense_rank() over(partition by date(create_time) order by o.create_time) ,rank() over(partition by date(create_time) order by o.create_time) from u join o on u.id=o.user_id where date(create_time)='2023-05-31' order by date(create_time) desc

查询结果:

 



【本文地址】


今日新闻


推荐新闻


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