【每日SQL打卡】​​​​​​​​​​​​​​​DAY 15丨用户购买平台【难度困难】

元亨利贞 超凡大师 2021-11-29 15:54:30
select t1.spend_date,t1.platform,t2.total_amount,t2.total_users
  from (select distinct spend_date,s2.platform
          from Spending,(select 'mobile' as platform
                         union
                         select 'desktop' as platform
                         union
                         select 'both' as platform)s2)t1
  left join 
       (select spend_date,platform,total_amount,count(distinct user_id) as total_users
          from (select user_id,spend_date,case when s1.total_amount > amount then 'both' else platform end as platform,s1.total_amount as total_amount
                  from (select user_id,spend_date,platform,amount,
                               sum(amount) over (partition by user_id,spend_date) as total_amount
                          from Spending)s1)s3
         group by user_id,spend_date,platform)t2
    on t1.spend_date = t2.spend_date and t1.platform = t2.platform
  order by t1.spend_date,t1.platform desc

思路有点乱,不够精简。难点在于如何增加2019-07-02的both及相关值。

...全文
75 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-大数据 发布问题, 以便更快地解决您的疑问

281,634

社区成员

发帖
与我相关
我的任务
社区描述
社区愿景:互相帮助,一起进步,升职加薪,迎娶白富美
大数据 企业社区 北京·朝阳区
社区管理员
  • 不吃西红柿丶
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

交流分享技术知识、咨询或解答技术难题

既学技术,又交朋友:https://app.yinxiang.com/fx/13ce6bbd-f36f-4e92-be53-92dd381ed729

试试用AI创作助手写篇文章吧