mysql - 是否可以在mysql中按几个不同的日期时间段进行分组?

标签 mysql sql database

有一个表喜欢:

like_user_id | like_post_id | like_date
----------------------------------------
1            | 2            | 1399274149
5            | 2            | 1399271149
....
1            | 3            | 1399270129

我需要进行一个 SELECT 查询,并根据 1 天、7 天、1 个月的时间段进行分组,对特定 like_post_id 的记录进行计数,1年。

结果必须是这样的:

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/

相关文章:

database - 非sysdba可以编译dbms_session吗?

javascript - TypeORM 返回普通对象

MySQL 说无法将 : invalid settings. EC2 连接到 RDS

php - Opencart 重定向到 www.localhost.com

c# - Entity Framework : Skip few columns or select as null from related entities

SQL Server - 如何将派生表用于计算字段?

php - 日期比较查询php sql

php - 设置脚本来访问单独的数据库

php - MySQL Where 子句由最后一个字符串

php - "how many search results from mysql"帮助