MySQL不会按链接进行分组

时间:2018-01-04 19:22:52

标签: mysql sql group-by count phpmyadmin

我有一个SQL表,其中包含数据,如ID,链接(超链接),类别和时间戳。

结果应该是一个SQL查询,它返回一天中指定链接的存在频率。这基本上意味着我必须执行一个SQL查询,它通过链接计算ID和组。

但是没有理由这完全不起作用...... 这就是我的SQL表的样子:

enter image description here

但是当我执行这个简单的SQL查询时:

SELECT COUNT(ID) AS Anzahl, DAY(STR_TO_DATE(datum, '%Y-%m-%d')) AS Datum, link as URL 
FROM 4184_lead_tracking 
WHERE datum >= '2017-12-01' AND datum <= '2017-12-31' 
GROUP BY link 
ORDER BY DAY(datum) ASC`

我得到了这个结果: enter image description here

你知道吗他将这两个链接合并为一个:

  1. https://radlvoo.de/blog/produkt/haibike-seet-hardfour-life-1-0-2016-rh-groesse-30/

  2. https://radlvoo.de/blog/produkt/haibike-seet-hardfour-life-1-0-2017-rh-groesse-30/

  3. 但他们不同。一个用于2016年,一个用于2017年......为什么他这样做,我如何将它们分组正确?

    我会感激任何帮助! 亲切的问候

1 个答案:

答案 0 :(得分:3)

无论如何你也应该按天分组(因为不参与聚合功能),或者不在SELECT中使用该字段,因为它只能包含GROUP中(很多)不同行的一个值:

SELECT COUNT(ID) AS Anzahl, DAY(STR_TO_DATE(datum, '%Y-%m-%d')) AS Datum, link as URL 
FROM 4184_lead_tracking 
WHERE datum >= '2017-12-01' AND datum <= '2017-12-31' GROUP BY link, Datum
ORDER BY DAY(datum) ASC

否则,您可能会因为没有参与聚类功能而没有参与聚类功能的列而产生不可预测的结果。详细了解GROUP BY in MySQLSQL Mode ONLY_FULL_GROUP_BY

的处理方式