mysql不会按链接分组

xsuvu9jc  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(347)

我有一个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年。。。他为什么要这样做?我怎样才能把他们分组?
我将感谢任何帮助!谨致问候

tyky79it

tyky79it1#

无论如何,您也应该按天分组(因为不涉及aggreagtion函数),或者不要在select中使用该字段,因为它只能包含组中(许多)不同行的一个值:

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中且不在聚合函数中的列生成不可预知的结果。阅读更多有关处理 GROUP BY 在mysql和sql模式下 ONLY_FULL_GROUP_BY

相关问题