请帮我解释为什么添加 GROUP BY 子句会改变查询的结果。所有其他保持不变,删除 GROUP BY 子句将产生与添加 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;