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

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

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

# 解法1
with t1 as (
    select 
        user_id,
        sales_date,
        sales_date - row_number()over(partition by user_id order by sales_date) as date_sub
    from sales_tb
)
select 
    user_id,
    count(date_sub) as days_count
from t1
group by user_id,date_sub
having count(sales_date) >= 2;
# 解法2
SELECT user_id,COUNT(1) days_count
FROM (SELECT DISTINCT sales_date,user_id,DENSE_RANK()OVER(PARTITION BY user_id ORDER BY sales_date)rk FROM sales_tb)t1
GROUP BY user_id,DATE_SUB(sales_date,INTERVAL rk DAY) HAVING COUNT(1)>=2;

解法2是对的,需要考虑一个用户在第一天后的某一天内购买两次的问题。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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