Как считать и группировать предметы по дням недели? - PullRequest
8 голосов
/ 23 февраля 2011

У меня есть следующая (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 ]

13 голосов
/ 23 февраля 2011
SELECT 
COUNT(`tweet_id`),
DAYNAME(FROM_UNIXTIME(created_at)) AS Day_Name1
FROM tweets2 

GROUP BY Day_Name1
ORDER BY Day_Name1;
3 голосов
/ 23 февраля 2011

У вас есть счет, но у вас нет группы по. Вы должны включить

GROUP BY WEEKDAY(FROM_UNIXTIME(`created_at`))
1 голос
/ 23 февраля 2011

Вы не группируете по дням недели, поэтому вы получаете только один общий итог. Попробуйте это:

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`));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...