如何按周计算和分组项目?

时间:2011-02-23 15:09:17

标签: mysql sql

我有以下(MySQL)表称为“推文”:

tweet_id   created_at
---------------------
1          1298027046
2          1298027100
5          1298477008

我希望MySQL返回一周中每天的推文数量;取上述数据后,应该返回:

Wednesday 1
Friday    2

我现在有以下查询(应该返回星期几的索引,而不是全名):

SELECT 
  COUNT(`tweet_id`),
  WEEKDAY(FROM_UNIXTIME(`created_at`))
FROM tweets2 
ORDER BY WEEKDAY(FROM_UNIXTIME(`created_at`))
然而,

然后返回:

COUNT(`tweet_id`)   WEEKDAY(FROM_UNIXTIME(`created_at`))
7377                4

(数据库中总共有7377条推文)。我做错了什么?

3 个答案:

答案 0 :(得分:13)

SELECT 
COUNT(`tweet_id`),
DAYNAME(FROM_UNIXTIME(created_at)) AS Day_Name1
FROM tweets2 

GROUP BY Day_Name1
ORDER BY Day_Name1;

答案 1 :(得分:3)

你有一个计数,但你没有一个小组。你应该包括一个

GROUP BY WEEKDAY(FROM_UNIXTIME(`created_at`))

答案 2 :(得分:1)

您不按工作日分组,因此您只能获得一个总计。试试这个:

SELECT 
  COUNT(`tweet_id`),
  WEEKDAY(FROM_UNIXTIME(`created_at`))
FROM tweets2 
GROUP BY WEEKDAY(FROM_UNIXTIME(`created_at`))
ORDER BY WEEKDAY(FROM_UNIXTIME(`created_at`));