sql group by count

问题描述 投票:0回答:2

我有一个像这样的数据库: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服务器版本对应的手册,以便在第1行的'GROUP_BY EXTRACT(YEAR_MONTH from creat_time)'附近使用正确的语法

怎么解决?

mysql sql select group-by
2个回答
0
投票

这是您现有的查询:

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 > '2018-09-01'
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
投票

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) 
© www.soinside.com 2019 - 2024. All rights reserved.