SELECT user_id,
总和(区分大小写
当click_date在“2020-08-01”和“2020-07-25”之间时
然后1 ELSE NULL
END),共total_visits_0至8_days,
总和(区分大小写
在“2020-07-26”和“2020-07-18”之间的click_date时
然后1 ELSE NULL
END)共8天到14天,
总和(区分大小写
当click_date在“2020-07-19”和“2020-07-02”之间时
然后1 ELSE NULL
END)共14天至30天,
总和(区分大小写
当click_date在“2020-07-03”和“2020-06-02”之间时
然后1 ELSE NULL
END)共30天60天,
总和(区分大小写
当click_date在“2020-06-02”和“2020-05-01”之间时
然后1 ELSE NULL
END)共_visits_60至90_days
来自my_table
GROUP BY user_id
我的查询正在为所有组返回NULL,因为我希望每个用户的访问量汇总
期望的输出:
每个用户ID在已建立的时间窗口内访问的时间总和。
我使用COUNT DISTINCT只是为了对每个日期进行一次计数,因此从5月1日到8月1日,每个用户的访问总数不应超过93。谢谢

最佳答案

您应该将日期转换用于“click_date”
是日期。对于下面的oracle示例
还请注意,第一个变量“2020-07-25”应小于第二个“2020-08-01”,您的设置相反。

click_date BETWEEN TO_DATE ('2020-07-25', 'yyyy/mm/dd')
               AND TO_DATE ('2020-08-01', 'yyyy/mm/dd');

关于sql - 计算每个用户的非重复访问并将其分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63494801/

10-15 21:42