选择用户id、总和(当单击“2020-08-01”和“2020-07-25”之间的日期时,使用不同的大小写,然后选择1,否则为空结束)总访问量为0到8天,
sum(当点击'2020-07-26'和'2020-07-18'之间的日期时,不区分大小写,否则为空结束)8到14天的总访问量,
sum(当点击'2020-07-19'和'2020-07-02'之间的日期时,不区分大小写,否则为空结束)14到30天的总访问量,
sum(当点击'2020-07-03'和'2020-06-02'之间的日期时,不区分大小写,否则为空结束)30到60天的总访问量,
sum(当点击'2020-06-02'和'2020-05-01'之间的日期时,不区分大小写,否则为空结束)60到90天的总访问量
从我的\u表按用户\u id分组
我的查询将为所有组返回null,因为我需要每个用户所需输出的总访问次数:
每个用户id在已建立的时间窗口内访问的次数总和。
我使用count distinct是为了每个日期只统计一次,所以从5月1日到8月1日,每个用户的访问量不应该超过93次,如果这样做有意义的话?谢谢您
2条答案
按热度按时间8i9zcol21#
您应该使用日期转换,因为“单击日期”是日期。对于下面的oracle示例
另外请注意,第一个变量“2020-07-25”应该小于第二个变量“2020-08-01”,您的变量是相反的。
kknvjkwl2#
当你使用
BETWEEN a AND b
你必须确保a
是<=
比b
,否则BETWEEN
总是回来FALSE
这就是代码中发生的事情。所以在任何情况下都要颠倒日期。
同时使用
COUNT()
而不是SUM()
如果要计算不同的日期: