由于我的网络主机已更新 MySQL 服务器版本,我的旧 SQL 查询不再工作:
select COUNT(ID) AS Anzahl,
DAY(STR_TO_DATE(created_at, '%Y-%m-%d')) AS Datum
from `leads`
where `created_at` >= 2018-02-01
and `created_at` <= 2018-02-15
and `shopID` = 20
group by DAY(created_at)
order by DAY(created_at) asc
这意味着,我必须通过查询创建一个完整的组。我已经读过这篇article但我不太明白。
I should name all columns which are unique
这就是我不明白的。如果我想对 ID 进行计数,则无法创建按 ID 进行分组的查询,因为在这种情况下,我的计数始终为 1
。有人可以向我解释一下完整的 group by 是如何工作的以及我的语句如何使用完整的 group by 语句吗?
最佳答案
只需在 select
中使用与 group by
中相同的表达式即可:
select COUNT(ID) AS Anzahl, DAY(created_at) AS Datum
from `leads` l
where `created_at` >= '2018-02-01' and
`created_at` <= '2018-02-15' and
`shopID` = 20
group by DAY(created_at)
order by DAY(created_at) asc;
您还需要将日期常量用单引号引起来。
关于MySQL 完整分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48799616/