0

我的数据库中有一个表Post,其中包含不同用户的帖子。我想做的是创建一个 sql 查询,该查询将根据各自的月份返回每天发布的帖子数。请让我知道如何在一个查询中一般地做到这一点,我可以为所有天创建多个查询,但这是最坏的情况。所以我需要专家的解决方案。谢谢

预期输出:( 查询计算各月所有天的帖子数)

天 : 帖子数

1 : 20

2 : 25

3 : 10

4 : 17

…………………………………………………………………………………………………………

30 : 6

表结构: ID | postid | post | date

4

3 回答 3

3
select DAYOFMONTH(date) as Day , count(*) as Number_of_posts
from table
group by DAYOFMONTH(date)

您应该知道,如果表包含来自不同月份的数据,则帖子数将是错误的。
所以分组依据应该是按日期,你应该使用选定的日期而不是月份的日期。

于 2012-11-09T21:32:50.570 回答
2
SELECT DAYOFMONTH(date), count(*) FROM Post
GROUP BY DAYOFMONTH(date)
ORDER BY DAYOFMONTH(date) ASC;

如果您想查询特定月份(例如二月),请使用以下命令:

SELECT DAYOFMONTH(date), count(*) FROM Post
WHERE MONTH(date) = '2'
GROUP BY DAYOFMONTH(date)
ORDER BY DAYOFMONTH(date) ASC;

注意:月份以数字形式返回,其中使用了MONTH()函数。

编辑:如果您希望返回给定月份中每一天的计数,那么我会将您推到这里 - 一个类似问题的公认答案:如何获取一个月中每一天的值

于 2012-11-09T21:34:31.740 回答
1
SELECT date, COUNT(id) as number_of_posts FROM table_name GROUP BY date.
于 2012-11-09T21:32:59.597 回答