は、ただ非常に簡単な例として、のは、私はそうのようなサンプルデータを持つテーブルtest
を持っているとしましょう:条件付きカウント:SUM()と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
そして、それぞれのa
について、私はそこにあるどのように多くのb
さんのカウントを取得しますよ今私は2つの方法のいずれかで、この結果を達成でき
a | bcnt
--------------
1 | 4
2 | 2
3 | 0
:< 50.結果は次のようになり
SELECT a, COUNT(CASE WHEN b < 50 THEN 1 ELSE NULL END) AS bcnt
FROM test
GROUP BY a
または:
SELECT a, SUM(CASE WHEN b < 50 THEN 1 ELSE 0 END) AS bcnt
FROM test
GROUP BY a
私はこれを知っているが、このような些細な些細な問題のように見えるかもしれませんが、私の質問には、任意の利点(ただしので、わずかなが)という点で他の上で1つのアプローチを使用することにあるだろうされています。パフォーマンス? ...どのくらい多くのDBMSが働いていますか... ...文の明瞭性... ...等
"私は**カウント**を取得したい..."と答えることは尋ねることですか? :-) – Eric