请帮我解释为什么添加GROUP BY子句会更改查询的结果。所有其他条件保持不变,删除GROUP BY子句将产生与添加GROUP BY子句不同的结果。MySQL - GROUP BY更改结果
在我看来,GROUP BY只会将结果按字段分组,而不会改变计数。
我需要通过table2.name来组织数据,并且得到的计数为每个
SELECT table2.name, COUNT(DISTINCT(op.id))
FROM op INNER JOIN table1 ON table1.EID = op.ID
INNER JOIN table3 ON table3.id = table1.jobid
INNER JOIN table2 ON table2.id = table3.CatID
WHERE op.ActiveStartDate <= NOW()
AND op.ActiveEndDate >= NOW()
GROUP BY table2.name
ORDER BY COUNT(*) DESC;
我们无法预测您看到了什么,请分享这两个查询结果 – Kuzgun
奇怪是查询可以在没有GROUP BY的情况下工作(因为MySql对所有未包含在GROUP BY子句中的标量字段应用隐式LIMIT 1) –
所有聚合函数(如'count')根据组的记录计算(如果已定义)。否则,他们将根据完整的结果集进行计算。 –