使用 CASE 來計算匹配條件的列中的行數
用例
CASE
可以與 SUM
一起使用,僅返回與預定義條件匹配的專案的計數。 (這類似於 Excel 中的 COUNTIF
。)
訣竅是返回指示匹配的二進位制結果,因此匹配條目返回的 1
可以總計匹配總數的計數。
鑑於此表 ItemSales
,假設你想要了解被歸類為昂貴的專案總數:
ID |
專案 Id | 價錢 | PriceRating |
---|---|---|---|
1 |
100 | 34.5 | 昂貴 |
2 |
145 | 2.3 | 廉價 |
3 |
100 | 34.5 | 昂貴 |
4 |
100 | 34.5 | 昂貴 |
五 | 145 | 10 | 實惠 |
詢問
SELECT
COUNT(Id) AS ItemsCount,
SUM ( CASE
WHEN PriceRating = 'Expensive' THEN 1
ELSE 0
END
) AS ExpensiveItemsCount
FROM ItemSales
結果:
ItemsCount |
ExpensiveItemsCount |
---|---|
五 | 3 |
替代方案:
SELECT
COUNT(Id) as ItemsCount,
SUM (
CASE PriceRating
WHEN 'Expensive' THEN 1
ELSE 0
END
) AS ExpensiveItemsCount
FROM ItemSales