¿Cómo obtener la cantidad de registros en SQL Server con la función COUNT()?

En este tutorial, aprenderás a usar la función COUNT()
de SQL Server para obtener la cantidad de elementos en un conjunto.
COUNT()
es una función agregada de SQL Server que devuelve el número de elementos encontrados en un conjunto.
A continuación, se muestra la sintaxis de la función COUNT()
:
COUNT([ALL | DISTINCT] expression)
En esta sintaxis:
ALL
indica a la funciónCOUNT()
que se aplique a todos los valores.ALL
es el valor predeterminado.- DISTINCT indica a la función
COUNT()
que devuelva el número de valores únicos no nulos. - expresión es una expresión de cualquier tipo excepto imagen, texto o ntext. Ten en cuenta que no puedes usar una subconsulta o una función agregada en la expresión.
La función COUNT()
también se usa de la siguiente manera:
COUNT(*)
Usando esta sintaxis, COUNT(*)
devuelve el número de filas en una tabla específica. COUNT(*)
no admite DISTINCT y no toma parámetros. Cuenta cada fila por separado e incluye filas que contienen valores NULL.
En resumen:
COUNT(*)
cuenta el número de elementos en un conjunto. Incluye valores NULL y duplicados.COUNT(ALL expression)
evalúa la expresión para cada fila de un conjunto y devuelve el número de valores no nulos.COUNT(DISTINCT expression)
evalúa la expresión para cada fila de un conjunto y devuelve el número de valores únicos no nulos.
Ejemplos de la función COUNT() de SQL Server
El siguiente código crea una nueva tabla llamada t con la instrucción CREATE TABLE, después inserta algunos datos en la tabla con la instrucción INSERT INTO y consulta datos en ella utilizando SELECT:
CREATE TABLE t(val INT);
INSERT INTO t(val)VALUES(1),(2),(2),(3),(null),(null),(4),(5);
SELECT val FROM t;
Resultado:
val
-------------
1
2
2
3
NULL
NULL
4
5
Ejemplo de la función COUNT(*) de SQL Server
COUNT(*)
devuelve todas las filas en una tabla específica como se ilustra en la siguiente declaración:
SELECT COUNT(*) val_count FROM t;
Resultado
val_count
------------------
8
(1 row affected)
Ejemplo de la función COUNT(DISTINCT expression) de SQL Server
El siguiente ejemplo usa COUNT(DISTINCT expression)
para devolver el número de valores únicos no nulos en la tabla t:
SELECT COUNT(DISTINCT val) val_count
FROM t;
Resultado:
val_count
-----------
5
Warning: Null value is eliminated by an aggregate or other SET operation.
(1 row affected)
Ejemplo de la función COUNT(expression) de SQL Server
El siguiente ejemplo usa COUNT(expression)
para devolver el número de valores no nulos en la tabla t:
SELECT COUNT(val) FROM t;
Resultado:
val_count
-----------
6
Warning: Null value is eliminated by an aggregate or other SET operation.
(1 row affected)
Función COUNT() de SQL Server: ejemplos prácticos
La siguiente declaración devuelve el número de productos en la tabla de productos de la base de datos de prueba:
SELECT COUNT(*) product_count
FROM production.products;
Resultado:
product_count
-------------
321
(1 row affected)
El siguiente ejemplo utiliza la función COUNT(*)
para encontrar la cantidad de productos cuyo año de modelo es 2016 y el precio de lista es superior a 999.99:
SELECT COUNT(*)
FROM production.products
WHERE model_year = 2016 AND list_price > 999.99;
Resultado:
Result
-----------
7
(1 row affected)
Función COUNT() de SQL Server usando la cláusula GROUP BY
La siguiente declaración utiliza la función COUNT(*)
para encontrar el número de productos en cada categoría de producto:
SELECT category_name, COUNT(*) product_count
FROM production.products p
INNER JOIN production.categories c ON c.category_id = p.category_id
GROUP BY category_name
ORDER BY product_count DESC;
Resultado:
category_name product_count
----------------- -------------
Cruisers Bicycles 78
Mountain Bikes 60
Road Bikes 60
Children Bicycles 59
Comfort Bicycles 30
Electric Bikes 24
Cyclocross Bicycles 10
(7 rows affected)
En este ejemplo, primero, la cláusula GROUP BY dividió los productos en grupos usando el nombre de la categoría y luego la función COUNT()
se aplica a cada grupo.
SQL Server COUNT() con ejemplo de cláusula HAVING
La siguiente declaración devuelve la marca y la cantidad de productos para cada uno. Pero solo devuelve las marcas que tienen una cantidad de productos superior a 20:
SELECT brand_name, COUNT(*) product_count
FROM production.products p
INNER JOIN production.brands c ON c.brand_id = p.brand_id
GROUP BY brand_name
HAVING COUNT(*) > 20
ORDER BY product_count DESC;
Resultado:
brand_name product_count
--------------- -------------
Trek 135
Electra 118
Surly 25
Sun Bicycles 23
(4 rows affected)
En este tutorial, has aprendido a usar la función COUNT()
de SQL Server para encontrar la cantidad de elementos en un conjunto.