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

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

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

需要把连续的时间抽出来,dense_rank避免了排序里同一天多次购买的计数问题

SELECT 
    user_id,
    COUNT(*) AS days_count
FROM (
    SELECT 
        user_id,
        sales_date,
        DATE_SUB(sales_date, INTERVAL DENSE_RANK() OVER (PARTITION BY user_id ORDER BY sales_date) DAY) AS date_group
    FROM (
        SELECT DISTINCT sales_date, user_id 
        FROM sales_tb
    ) t1
) t2
GROUP BY user_id, date_group
HAVING COUNT(*) >= 2
ORDER BY user_id;

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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