Las variaciones de la sintaxis consiguen objetivos diferentes.
La sintaxis de COUNT(*) nos permite contar el número de filas de una tabla
La sintaxis de COUNT(DISTINCT column) nos permite contar el número de valores distintos de una columna
La sintaxis de COUNT(CASE WHEN condition THEN column END) nos permite contar el número de valores que cumplen condiciones.
COUNT(), utilizado con GROUP BY, es útil para contar el número de filas que pertenecen a cada grupo.
COUNT(), utilizado con HAVING, es útil para filtrar grupos según el número de filas que tengan.
Los ilustraremos con los ejemplos siguientes.
COUNT() , ejemplos
Ejemplo 1: contar el número de filas con COUNT(*)
La tabla llamada productos contiene todos los productos que vende una empresa. La cláusula COUNT(*) nos permite calcular el número de filas de la tabla.
Ejemplo 2: contar valores únicos con COUNT(DISTINCT …)
La sintaxis de COUNT(DISTINCT column) nos permite contar el número de valores únicos de una columna.
Por ejemplo, cada producto tiene una marca asociada en la tabla products. Podemos contar el número de productos y marcas únicos en la tabla.
SELECTCOUNT(DISTINCT product_id)AS unique_product_count,COUNT(DISTINCT brand_id)AS unique_brand_count
FROM productsCon la tecnología de
unique_product_count
unique_brand_count
321
9
Ejemplo 3: contar las filas que cumplen una condición mediante COUNT() con CASE WHEN
La sintaxis de COUNT(CASE WHEN condition THEN column END) nos permite calcular el número de filas que cumplen una condición.
Por ejemplo, en la tabla de productos, cada producto tiene un list_price. Podemos calcular cuántos productos son "expensive" (tienen un precio de catálogo superior a 500 $) o no.
SELECTCOUNT(CASEWHEN list_price >=500THEN product_id END)AS expensive_product_count,COUNT(CASEWHEN list_price <500THEN product_id END)AS cheap_product_count
FROM productsCon la tecnología de
expensive_product_count
cheap_product_count
213
108
Ejemplo 4: contar filas en grupos utilizando COUNT() con GROUP BY
COUNT() puede utilizarse con GROUP BY para averiguar el número de filas de cada grupo.
Por ejemplo, la tabla de productos contiene modelos de bicicleta de 2016 a 2019. Para hallar la distribución de la bicicleta, podemos utilizar COUNT(product_id) y GROUP BY model_year para contar el número de productos de cada año.
SELECT
model_year,COUNT(product_id)AS product_count
FROM products
GROUPBY model_yearCon la tecnología de
model_year
product_count
2016
26
2017
85
2018
204
2019
6
Ejemplo 5: filtrar por grupos utilizando COUNT() con GROUP BY y HAVING
En el ejemplo 4, vemos que COUNT() puede utilizarse con GROUP BY. Podemos utilizar la declaración HAVING para filtrar por grupos utilizando el número de filas de ese grupo.
Por ejemplo, para hallar el número de años que tienen menos de 50 productos, podemos utilizar la siguiente sintaxis.
SELECT
model_year
FROM products
GROUPBY model_year
HAVINGCOUNT(product_id)<50Con la tecnología de
year_with_less_than_50_pdt
2016
2019
Requisitos técnicos
COUNT() es una función disponible en todas las versiones de SQL modernas.
Si quiere iniciarse en SQL, nosotros le ayudamos. En este tutorial de SQL, le presentaremos las consultas SQL, una potente herramienta que nos permite trabajar con los datos almacenados en una base de datos. Verá cómo escribir consultas SQL, aprenderá sobre
Aprende a seleccionar fácilmente varias columnas de una tabla de base de datos en SQL, o a seleccionar todas las columnas de una tabla en una simple consulta.
¿Qué es la función
COUNT()?La función
COUNT()devuelve el número de filas que coinciden con un criterio.COUNT()y su sintaxisLa sintaxis básica de
COUNT()es la siguiente.Las variaciones de la sintaxis consiguen objetivos diferentes.
COUNT(*)nos permite contar el número de filas de una tablaCOUNT(DISTINCT column)nos permite contar el número de valores distintos de una columnaCOUNT(CASE WHEN condition THEN column END)nos permite contar el número de valores que cumplen condiciones.COUNT(), utilizado conGROUP BY, es útil para contar el número de filas que pertenecen a cada grupo.COUNT(), utilizado conHAVING, es útil para filtrar grupos según el número de filas que tengan.Los ilustraremos con los ejemplos siguientes.
COUNT(), ejemplosEjemplo 1: contar el número de filas con
COUNT(*)La tabla llamada productos contiene todos los productos que vende una empresa. La cláusula
COUNT(*)nos permite calcular el número de filas de la tabla.number_of_rows321
Ejemplo 2: contar valores únicos con
COUNT(DISTINCT …)La sintaxis de
COUNT(DISTINCT column)nos permite contar el número de valores únicos de una columna.Por ejemplo, cada producto tiene una marca asociada en la tabla
products. Podemos contar el número de productos y marcas únicos en la tabla.unique_product_countunique_brand_count321
9
Ejemplo 3: contar las filas que cumplen una condición mediante
COUNT()conCASE WHENLa sintaxis de
COUNT(CASE WHEN condition THEN column END)nos permite calcular el número de filas que cumplen una condición.Por ejemplo, en la tabla de productos, cada producto tiene un
list_price. Podemos calcular cuántos productos son "expensive" (tienen un precio de catálogo superior a 500 $) o no.expensive_product_countcheap_product_count213
108
Ejemplo 4: contar filas en grupos utilizando
COUNT()conGROUP BYCOUNT()puede utilizarse conGROUP BYpara averiguar el número de filas de cada grupo.Por ejemplo, la tabla de productos contiene modelos de bicicleta de 2016 a 2019. Para hallar la distribución de la bicicleta, podemos utilizar
COUNT(product_id)yGROUP BY model_yearpara contar el número de productos de cada año.model_yearproduct_count2016
26
2017
85
2018
204
2019
6
Ejemplo 5: filtrar por grupos utilizando
COUNT()conGROUP BYyHAVINGEn el ejemplo 4, vemos que
COUNT()puede utilizarse conGROUP BY. Podemos utilizar la declaraciónHAVINGpara filtrar por grupos utilizando el número de filas de ese grupo.Por ejemplo, para hallar el número de años que tienen menos de 50 productos, podemos utilizar la siguiente sintaxis.
year_with_less_than_50_pdt2016
2019
Requisitos técnicos
COUNT()es una función disponible en todas las versiones de SQL modernas.Ver también
Más información sobre Python