我有一个SQL表,其中包含数据,如ID,链接(超链接),类别和时间戳。
结果应该是一个SQL查询,它返回一天中指定链接的存在频率。这基本上意味着我必须执行一个SQL查询,它通过链接计算ID和组。
但是没有理由这完全不起作用...... 这就是我的SQL表的样子:
但是当我执行这个简单的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`
你知道吗他将这两个链接合并为一个:
https://radlvoo.de/blog/produkt/haibike-seet-hardfour-life-1-0-2016-rh-groesse-30/
https://radlvoo.de/blog/produkt/haibike-seet-hardfour-life-1-0-2017-rh-groesse-30/
但他们不同。一个用于2016年,一个用于2017年......为什么他这样做,我如何将它们分组正确?
我会感激任何帮助! 亲切的问候
答案 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 MySQL和SQL Mode ONLY_FULL_GROUP_BY