【SQL】开窗函数(排序) |
您所在的位置:网站首页 › sql中聚合函数 › 【SQL】开窗函数(排序) |
标准定义:开窗函数用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用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 |