我的数据库中有一个表Post
,其中包含不同用户的帖子。我想做的是创建一个sql查询,它将按照每个月每天发布的帖子数量返回。请告诉我如何在一个查询中一般地执行此操作我可以为所有日子创建多个查询,但这是最糟糕的情况。所以我需要专家的解决方案。
感谢
预期输出 (查询计算相应月份中所有日期的帖子数量)
日:帖子数量
1:20
2:25
3:10
4:17
.........................
30:6
表格结构:
ID | postid | post | date
答案 0 :(得分:3)
select DAYOFMONTH(date) as Day , count(*) as Number_of_posts
from table
group by DAYOFMONTH(date)
您应该知道,如果表中包含来自不同月份的数据,则会有错误的帖子数量 因此,分组应该按日期,您应该使用选定日期而不是月份日期。
答案 1 :(得分:2)
SELECT DAYOFMONTH(date), count(*) FROM Post
GROUP BY DAYOFMONTH(date)
ORDER BY DAYOFMONTH(date) ASC;
如果您想查询特定月份(例如2月),请使用以下命令:
SELECT DAYOFMONTH(date), count(*) FROM Post
WHERE MONTH(date) = '2'
GROUP BY DAYOFMONTH(date)
ORDER BY DAYOFMONTH(date) ASC;
注意:月份以数字形式返回,使用MONTH()函数。
编辑:如果您希望在某个月内每天都返回计数,那么我会将您推到这里 - 这是对类似问题的一个很好的接受答案:{ {3}}
答案 2 :(得分:1)
SELECT date, COUNT(id) as number_of_posts FROM table_name GROUP BY date.