Podobnie jak w bardzo prosty przykład, powiedzmy, że mam tabelę test
przykładowe dane tak:Liczenie warunkowe: różnice w wydajności przy użyciu funkcji SUMA() vs COUNT()?
a | b
-------------
1 | 18
1 | 24
1 | 64
1 | 82
1 | 10
1 | 7
2 | 5
2 | 18
2 | 66
2 | 72
3 | 81
3 | 97
i dla każdego a
, jestem uzyskać rachubę ilu b
„s istnieją, że są < 50. wynik będzie wyglądać następująco:
a | bcnt
--------------
1 | 4
2 | 2
3 | 0
teraz mogę osiągnąć ten wynik w jeden z dwóch sposobów:
SELECT a, COUNT(CASE WHEN b < 50 THEN 1 ELSE NULL END) AS bcnt
FROM test
GROUP BY a
Lub:
SELECT a, SUM(CASE WHEN b < 50 THEN 1 ELSE 0 END) AS bcnt
FROM test
GROUP BY a
wiem, może to wydawać się tak znikoma banalna sprawa, ale moje pytanie będzie tam żadnych korzyści (choć tak niewielki) w użyciu jednej metody nad drugą pod względem: wydajność? ... Ile innych DBMS'ów będzie w nich pracować? ... Klarowność wyciągu? ... itd.
"Chcę uzyskać ** liczbę ** z ..." Aby zapytać, czy należy odpowiedzieć? :-) – Eric