全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  应聘面试  >  大数据面试题

交易表结构为user_id(用户ID),order_id(订单ID),pay_time(付款时间),order_amount(金额)

发布时间:2022-09-30 15:41:04
发布人:qyf

交易表结构为user_id(用户ID)

  1. 写sql查询过去一个月付款用户量(提示:用户量需去重)最高的三天分别是哪几天?

  2. 写sql查询昨天每个用户最后付款的订单ID及金额select date_format(pay_time,'%Y-%m-%d') days , count(distinct user_id) from table where pay_time>=date_sub(now(),interval 1 month) #过去一个月 group by date_format(pay_time,'%Y-%m-%d') order by count(distinct user_id) desc limit

  3 思路:求最高的三天,肯定是先排序,后limit. 先求出每天的付款用户量,既然每天,那肯定要按天分组了;按照题目要求过滤条件有:

  1.过去一个月

  2.付款用户(即要排除未付款的用户),另外求用户量需要去重,题目中也有提示,因为存在同一个用户每天有多笔消费记录的情况;

  返回排在前三的付款用户量及对应的时间(天) select a.user_id, a.order_amount from (select user_id, order_amount, row_number() over(partition by user_id order by pay_time desc) as rank from table where date_format(pay_time,"%Y-%m-%d")=date_sub(curdate(),interval 1 day) #昨天 ) as awhere rank=1

相关文章

大数据kafka常见面试题——如何搭建kafka?

2023-08-07

大数据kafka常见面试题——kafka中如何避免重复消费

2023-08-04

大数据面试题之多种方法创建dataframe

2023-08-02

大数据Hadoop面试题——Hadoop干什么用的?

2023-08-01

大数据行业2年工作经验的面试题有哪些?

2023-07-28

大数据kafka面试题——kafka和flume的区别是什么?

2023-07-27
在线咨询 免费试学 教程领取