Условный подсчет :Различия в производительности при использовании SUM ()и COUNT ()?

В качестве очень простого примера, скажем, у меня есть таблица testс образцами данных, например:

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есть < 50. Результат будет выглядеть как:

a     |   bcnt
--------------
1     |      4
2     |      2
3     |      0

Теперь я мог добиться этого результата одним из двух способов :

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

Я знаю, что это может показаться таким незначительным тривиальным вопросом, но мой вопрос заключается в том, будет ли какое-либо преимущество (, каким бы незначительным )использование одного подхода над другим с точки зрения :производительности? другие СУБД, в которых они будут работать?... Ясность формулировки?... и т. д.

5
задан Zane Bien 5 July 2012 в 08:33
поделиться