MySQL 不会按链接分组

标签 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/

但它们是不同的。一张是 2016 年的,一张是 2017 年的……他为什么要这样做?我怎样才能正确地将它们分组?

我将不胜感激任何形式的帮助! 亲切的问候

最佳答案

无论如何,您还应该按天分组(因为不参与聚合函数),或者不要在 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

关于MySQL 不会按链接分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48102152/

相关文章:

php - SQL 排序依据、分组依据、具有

c# - 根据行号删除多行

hibernate - HQL : group by month

python - Pandas 在 groupby.apply(..) 之后删除组列

php - WAMP 虚拟主机不工作

mysql - CentOS 上的 sqoop 导出

mysql - 运行保存在字段中的 SQL 查询

MYSQL 查询通过在逗号分隔的字符串中查找其 id 来计算项目的后代

php - Moodle 无法将记录插入数据库 php

mysql - 电源故障和mysql崩溃