Mysql 选择日期,然后将其放入组中

Mysql 选择日期,然后将其放入组中,mysql,group-by,Mysql,Group By,我试图从数据库中选择日期,然后将其分组为月份和年份,例如: May 2019 June 2018 etc. 分贝 -日期类型为date 我有以下代码: SELECT datum, count(*) FROM zapasy GROUP BY datum 这使得它每天都有,但我不想这样,所以我研究了如何将它分组为月份和年份,而不仅仅是几天 SELECT datum, count(*) FROM zapasy GROUP BY MONTH(datum), YEAR(datum) 我想出了这

我试图从数据库中选择日期,然后将其分组为月份和年份,例如:

May 2019
June 2018
etc.
分贝 -日期类型为date

我有以下代码:

  SELECT datum, count(*) FROM zapasy GROUP BY datum
这使得它每天都有,但我不想这样,所以我研究了如何将它分组为月份和年份,而不仅仅是几天

 SELECT datum, count(*) FROM zapasy GROUP BY MONTH(datum), YEAR(datum)
我想出了这个,然而,我得到了这个愚蠢的错误

1055-选择列表的表达式1不在GROUP BY子句中,且包含未聚合列“zapasy_db_test.zapasy.datum”,该列在功能上不依赖于GROUP BY子句中的列;这与sql\u mode=only\u full\u group\u by不兼容

我不知道代码出了什么问题

请给我一些建议。
谢谢你

你需要在你的选择中有你要分组的项目

所以


而不是datum,否则您选择的日期列中会有一天,这是从datum中获得的,与计数和组无关,这将是错误的,否则分组将根本不起作用。

我注意到您所需的输出是这种格式的,例如2019年5月等。您知道日期数据类型是这样的,yyyy-mm-dd因此,如果您真的希望以该格式提取月份-年份,您可以尝试以下操作:

SELECT DATE_FORMAT(datum, '%b %Y') AS 'Monthyear', COUNT(*) 
FROM zapasy 
GROUP BY Monthyear;
这是因为sql\u mode=only\u full\u group\u by;也许你可以这样尝试从zapasy GROUP中选择MONTHdatum,YEARdatum,count*,MONTHdatum,YEARdatum?可能是
SELECT DATE_FORMAT(datum, '%b %Y') AS 'Monthyear', COUNT(*) 
FROM zapasy 
GROUP BY Monthyear;