SQL 使用CASE计数与条件匹配的列中的行数。

示例

用例

CASE可以与一起使用,SUM以仅返回与预定义条件匹配的那些项目的计数。(这类似于COUNTIFExcel中的。)

诀窍是返回表示匹配项的二进制结果,因此可以将为匹配项返回的“ 1”相加,得出匹配总数的计数。

给定此表ItemSales,假设您要了解已归类为“昂贵”商品的总数:

IDItemId价钱定价
110034.5昂贵
21452.3便宜的
310034.5昂贵
410034.5昂贵
514510买得起

询问

SELECT 
    COUNT(Id) AS ItemsCount,
    SUM ( CASE 
            WHEN PriceRating = 'Expensive' THEN 1
            ELSE 0
          END
        ) AS ExpensiveItemsCount
FROM ItemSales

结果:

ItemsCountExpensiveItemsCount
53

选择:

SELECT 
    COUNT(Id) as ItemsCount,
    SUM (
        CASE PriceRating 
            WHEN 'Expensive' THEN 1
            ELSE 0
        END
       ) AS ExpensiveItemsCount
FROM ItemSales