Трудности с настройкой сложного запроса MySQL - PullRequest
6 голосов
/ 01 декабря 2011

Я пытаюсь сделать запрос для получения данных из базы данных, но не могу это сделать.

У меня есть следующая таблица с фиктивными данными:

id | date  

0  | 2011-11-25 20:12:32
1  | 2011-11-15 20:12:32
2  | 2011-11-05 20:12:32
3  | 2011-10-25 20:12:32
4  | 2011-10-15 20:12:32
5  | 2011-10-05 20:12:32
6  | 2010-10-25 20:12:32
7  | 2010-04-25 20:12:32
8  | 2009-07-25 20:12:32

Я хочу сделать запрос, который:

  • Сортирует дату по году, затем по месяцу, а затем по дню
  • Тогда он должен посчитать, сколько времени каждого месяца в эти годы.

Если вы не понимаете, о чем я Результат должен выглядеть примерно так (используя фиктивные данные из таблицы):


Year | Month | amount (of rows with that month in that year)

2011 | 11    | 3
2011 | 10    | 3
2010 | 4     | 2
2009 | 7     | 1

У меня есть некоторые знания о MySQL, но для меня это очень много. :)

Заранее спасибо

Ответы [ 3 ]

10 голосов
/ 01 декабря 2011
SELECT YEAR(`date`)  AS `year`, 
       MONTH(`date`) AS `month`, 
       COUNT(*)      AS amount 
FROM   `table` 
GROUP  BY YEAR(`date`), 
          MONTH(`date`) 
ORDER  BY `date` DESC 
1 голос
/ 01 декабря 2011
SELECT YEAR(date) AS Year, MONTH(date) AS Month, COUNT(*) as amount
FROM table
GROUP BY LEFT(date, 7)
ORDER BY date DESC
0 голосов
/ 01 декабря 2011

Используйте это в вашем запросе:

SELECT count(*) from t GROUP BY YEAR(date), MONTH(date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...