有一个表likes
:
like_user_id | like_post_id | like_date
----------------------------------------
1 | 2 | 1399274149
5 | 2 | 1399271149
....
1 | 3 | 1399270129
我需要进行一个
SELECT
查询,并根据1天,7天,1个月,1年的时间段对特定like_post_id
的记录进行计数。结果必须是这样的:
period | total
---------------
1_day | 2
7_days | 31
1_month | 87
1 year | 141
可能吗?
谢谢。
最佳答案
我已经为Oracle语法创建了查询,请根据您的数据库进行更改
select '1_Day' as period , count(*) as Total
from likes
where like_date>(sysdate-1)
union
select '7_days' , count(*)
from likes
where like_date>(sysdate-7)
union
select '1_month' , count(*)
from likes
where like_date>(sysdate-30)
union
select '1 year' , count(*)
from likes
where like_date>(sysdate-365)
这里的想法是获取单个期间的单个子查询,然后在与过滤器匹配的位置应用过滤器。
关于mysql - 是否可以在mysql中按几个不同的日期段进行分组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23518826/