我有一张有帖子的桌子。喜欢(id
int,date
datetime)。
如何通过一个sql请求选择每个月的平均帖子数?
谢谢!
答案 0 :(得分:3)
这应该适合你:
select month, avg(posts_per_day)
from (select day(date), month(date) as month, count(*) as posts_per_day
from posts group by 1,2) x
group by 1
说明:因为您在聚合上进行聚合,所以无法对查询进行查询:
答案 1 :(得分:0)
您可以像这样获得每月的帖子数量:
SELECT COUNT(*) AS num_posts_per_month FROM table GROUP BY MONTH(date);
现在我们需要一个月的天数:
SELECT COUNT(*) / DATEDIFF(MAKEDATE(YEAR(date), MONTH(date)) + INTERVAL 1 MONTH, MAKEDATE(YEAR(date), MONTH(date))) AS avg_over_month
FROM table GROUP BY MONTH(date);
这将获得帖子日历月内每天的平均帖子数。也就是说,本月的平均值将继续上升,直到月底。如果你想要在当月的实际平均值,你必须输入一个条件来获得真实的经过天数。