SQL每日一题(20211124)每个用户从第一次购买,计算其7天内的购买数量,然后再以此类推计算后面每隔7天的购买数量

SQL每日一题(20220428)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SELECT d.id, d.date, d.num
FROM (SELECT c.dt, c.id, sum(c.num) num, min(c.date) date
      FROM (SELECT a.id, a.da, b.date, FLOOR((b.date - a.da) / 7) dt, b.num
            FROM (SELECT id, min(date) da, sum(num) num FROM t1124 GROUP BY id) a
                     RIGHT JOIN (SELECT * FROM t1124) b ON a.id = b.id) c
      GROUP BY c.dt, c.id
      ORDER BY c.id) d
select id, aa, sum(num) num
from (select a.id,
             a.date,
             a.num,
             ifnull(if(ifnull(datediff(a.date, b.date), right(a.date, 1)) >= 7, b.num,
                       ifnull(datediff(a.date, b.date), right(a.date, 1))), a.num) aa
      from (select *, row_number() over (partition by id) rnk from t1124) a left
               join(select *, row_number() over () rnk from t1124) b on a.rnk=b.rnk+1) p
group by aa, id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

time丶sand

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值