SQL Use CASO para CONTAR el número de filas en una columna que coincida con una condición.


Ejemplo

Caso de uso

CASE se puede usar junto con SUM para devolver un recuento de solo aquellos elementos que coinciden con una condición predefinida. (Esto es similar a COUNTIF en Excel.)

El truco es devolver resultados binarios que indiquen coincidencias, por lo que los "1" devueltos para las entradas coincidentes se pueden sumar para un recuento del número total de coincidencias.

Dada esta tabla de ItemSales , supongamos que desea conocer el número total de artículos que se han categorizado como "Caros":

Carné de identidad Identificación del artículo Precio Precio
1 100 34.5 COSTOSO
2 145 2.3 BARATO
3 100 34.5 COSTOSO
4 100 34.5 COSTOSO
5 145 10 ASEQUIBLE

Consulta

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

Resultados:

ArtículosCuenta ExpensiveItemsCount
5 3

Alternativa:

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