ほぼ同一の 2 つのクエリがあります。1 つは GROUP BY を使用し、もう 1 つは使用しません。結果は大きく異なります。GROUP BY クエリの結果は、非 GROUP BY クエリの結果の 2 倍以上になります。
クエリ 1:
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.BID = 1
AND op.ActiveStartDate <= NOW()
AND op.ActiveEndDate >= NOW()
GROUP BY table2.name
ORDER BY COUNT(*) DESC;
クエリ 2:
SELECT op.Type, COUNT(DISTINCT op.id)
FROM op
WHERE op.BID = 1
AND op.ActiveStartDate <= NOW()
AND op.ActiveEndDate >= NOW()
ORDER BY op.Type ASC;
これらは同じ結果になるはずです。それらをいじってみると、クエリ1から「GROUP BY」を削除すると、結果は同じになります。「GROUP BY」をクエリ 1 に戻すと、結果は 2 倍以上になります。
編集: 追加の INNER JOINS は結果に影響を与えていないようですが、クエリ 1 の GROUP BY に影響を与えているようです。クエリ 1 で GROUP BY を削除すると、2 つのクエリ間の結果は同じになります。GROUP BY をクエリ 1 に戻すと、結果は大きく異なります。