MySQL的SELECT列表是不是在GROUP BY子句中包含非聚合列
问题描述:
我使用MySQL 5.7,和我得到这个查询时出现错误:如果我改变GROUP BY MONTH(created)
与MySQL的SELECT列表是不是在GROUP BY子句中包含非聚合列
SELECT
COUNT(id) AS sales,
SUM(amount) AS total,
created
FROM
`payments`
WHERE status =1
GROUP BY MONTH(created);
:
GROUP BY created
然后错误消失。我没有访问my.ini,对sql_mode进行更改。
答
既然你一个月明智组,你shold输出的几个月也
SELECT COUNT(id) AS sales,
SUM(amount) AS total,
MONTH(created)
FROM payments
WHERE status = 1
GROUP BY MONTH(created)
否则MySQL有挑选从组中created
值。但是你应该定义要显示的内容。
另一种可能性,而不是输出MONTH(created)
将是像min(created)
这样的日期聚合,它会输出每月的最早日期。
这似乎是不言自明的。 – Strawberry