题解 | SQL 184. 某宝店铺连续2天及以上购物的用户及其对应的天数

某宝店铺连续2天及以上购物的用户及其对应的天数

https://www.nowcoder.com/practice/63ac3be0e4b44cce8dd2619d2236c3bf

WITH t1 AS (
    SELECT sales_date,
           user_id,
           DENSE_RANK() over (PARTITION BY user_id ORDER BY sales_date ASC) AS rank_num
    FROM sales_tb
    GROUP BY sales_date, user_id
),
t2 AS (
    SELECT user_id,
           DATE_ADD(sales_date, INTERVAL - rank_num DAY ) AS origin_date
    FROM t1
),
t3 AS (
    SELECT user_id,
           count(origin_date) AS days_count
    FROM t2
    GROUP BY user_id
),
t4 AS (
    SELECT *
    FROM t3
    WHERE days_count >= 2
    ORDER BY user_id ASC
)
SELECT * FROM t4;

# 这道题的关键在于如何在第一步进行(用户,日期)去重操作!

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务