sql group_by count - PullRequest
       45

sql group_by count

0 голосов
/ 03 сентября 2018

У меня есть такая база данных: enter image description here

Я хочу посчитать идентификатор по месяцам, как этот результат:

id    creat_time

6     2018-8

Я пробовал этот запрос:

"SELECT EXTRACT(YEAR_MONTH from creat_time),COUNT(id) FROM b_project WHERE creat_time GROUP_BY EXTRACT(YEAR_MONTH from creat_time)"

Но я получил следующую ошибку:

1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного использования синтаксиса около 'GROUP_BY EXTRACT (YEAR_MONTH from creat_time)' в строке 1

Как это исправить?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Это ваш существующий запрос:

SELECT EXTRACT(YEAR_MONTH from creat_time),COUNT(id) 
FROM b_project 
WHERE creat_time 
GROUP_BY EXTRACT(YEAR_MONTH from creat_time)

Предложение where является неполным, что приведет к ошибке. Вам нужно что-то сделать, чтобы сравнить столбец с чем-либо: например,

SELECT EXTRACT(YEAR_MONTH from creat_time),COUNT(id) 
FROM b_project 
WHERE creat_time <b>> '2018-09-01'</b>
GROUP_BY EXTRACT(YEAR_MONTH from creat_time)

и, в соответствии с изображением в вашем вопросе, имя столбца - create_time, так что также нуждается в исправлении, например,

SELECT EXTRACT(YEAR_MONTH from create_time),COUNT(id) 
FROM b_project 
WHERE create_time > '2018-09-01'
GROUP_BY EXTRACT(YEAR_MONTH from create_time)
0 голосов
/ 03 сентября 2018

MySQL пытается указать нам на ошибку. Но он может только сказать нам, какая строка # имеет проблему. Поскольку SELECT все в одной строке, мы не получаем много информации. Пожалуйста, переформатируйте Select следующим образом, поместив каждый элемент в отдельную строку.

Кроме того, GROUP_BY, вероятно, может быть двумя отдельными словами без дефиса, поэтому попробуйте это.

SELECT 
       Extract(YEAR_MONTH FROM create_time),
       Count(id)

FROM   b_project

GROUP  BY 
       Extract(YEAR_MONTH FROM create_time) 
...