由于我的网络主机已经更新了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,但我真的不明白。


  我应该命名所有唯一的列


那就是我不明白的。如果要计算ID,则无法创建ID分组查询,因为在这种情况下,我的计数始终为1。有人可以向我解释完整的分组方式是如何工作的,而我的陈述希望完整的分组方式是怎样的?

最佳答案

只需在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;


您还需要在日期常量周围加上单引号。

07-24 18:29
查看更多