每个用户首次销售日期后30天内累计销售金额,SQL练习


问题描述:

销售记录表t3包含以下字段:
用户id:user_id
销售日期:sell_day

销售金额:amount

要求计算每个用户首次销售日期后30天内累计销售金额,输出结果格式如下:
用户id
首次销售日期
30天内累计销售金额

创建表:

查询:

SELECT
    a.user_id 用户id,
    MIN(a.sell_day) 首单日期,
    sum( a.amount )  30日累计
FROM
    (
    SELECT
        user_id,
        sell_day,
        amount,
        ROW_NUMBER() over ( PARTITION BY user_id ORDER BY sell_day ASC ) sell_nun 
    FROM
        Sell_user 
    GROUP BY
        user_id,
        sell_day 
    ) a
WHERE
    a.sell_nun BETWEEN 1 
    AND 30 
GROUP BY
    a.user_id;

查询结果: