暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL脚本案例【15】查询每个用户的最近三笔订单

皮皮克克 2024-05-06
132

点击关注公众号,干货第一时间送达


这题估计小编还没讲解,

聪明的小伙伴们就知道怎么解题了,

只有诸位看过之前的文章:

SQL脚本案例【7】每个学生,按各科成绩排序,并显示排名

掌握了"开窗排序"的使用,

这类题目,易如反掌。

【温馨提示:建表语句及数据导入脚本,可以翻看之前的文章:

SQL脚本案例【8】查询累积销量排名第二的商品


一、需求场景

题目:

查询订单表order_info,每个用户的最近三笔订单。

订单表order_info:

正确结果:


二、解决方案

演示工具:Hive-3.1.3 + DataGrip2022


每个用户的最近三笔订单,

可以采用按照用户分组,按照订单日期排序,

然后再筛选前3笔即可。


(1)针对用户,按照user_id分组,create_date排序

select
   user_id,
   order_id,
   create_date,
   row_number() over (partition by user_id order by create_date descas rk
from order_info

结果集:

(2)筛选前3笔

select user_id,order_id,create_date
from (
     select
         user_id,
         order_id,
         create_date,
         row_number() over (partition by user_id order by create_date descas rk
     from order_info
     )t1
where rk<=3


结果集:


结束语:
Ok,就是本篇文章的全部内容了。
如果各位有不懂的地方,欢迎发消息给小编,小编会进行详细地解答。
最后,请屏幕前的各位吴彦祖和刘亦菲们,动动你们的小手,给小编一个

文章转载自皮皮克克,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论