Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL: función de conteo
Este tutorial de SQL explica cómo usar SQL función de conteo Viene con gramática, ejemplos y ejercicios.
describir
La función SQL COUNT se usa para contar el número de filas devueltas en una instrucción SELECT.
sintaxis
La sintaxis de la función CONTAR en SQL es:
SELECT COUNT(aggregate_expression) FROM tables [WHERE conditions] [ORDER BY expression [ ASC | DESC ]];
O la sintaxis de la función CONTAR al agrupar resultados por una o más columnas es:
SELECT expression1, expression2, ... expression_n, COUNT(aggregate_expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n [ORDER BY expression [ ASC | DESC ]];
parámetro o parámetro
expresión1, expresión2, … expresión_n Expresiones que no están encapsuladas en la función COUNT y deben incluirse en la cláusula GROUP BY al final de la instrucción SQL. added_expression Esta es la columna o expresión cuyos valores no nulos se calcularán. tabla La tabla de la que desea recuperar registros. Debe aparecer al menos una tabla en la cláusula FROM. La condición WHERE es opcional. Estas son las condiciones que se deben cumplir para seleccionar registros. La expresión ORDER BY es opcional. La expresión utilizada para ordenar los registros en el conjunto de resultados. Si se proporcionan varias expresiones, los valores deben estar separados por comas. ASC es opcional. ASC ordena el conjunto de resultados en orden ascendente de expresiones. Este es el comportamiento predeterminado si el proveedor no es ningún modificador. DESC opcional. DESC ordena el conjunto de resultados en orden descendente de expresiones.
Ejemplo de DDL/DML
Si desea seguir este tutorial, obtenga DDL para crear las tablas y DML para completar los datos. ¡Entonces pruebe los ejemplos en su propia base de datos!
Ejemplo: la función COUNT contiene solo valores NOT NULL
No todos se dan cuenta de esto, pero la función COUNT solo contará registros donde la expresión NO sea NULL COUNT(expression)
Cuando la expresión es un valor NULL, no se incluye en el cálculo de COUNT. Exploremos esto más a fondo.
En este ejemplo, tenemos una tabla llamada clientes con los siguientes datos:
Identificación del cliente | apellido | nombre | sitio favorito |
---|---|---|---|
4000 | jackson | José | Red de Ciencia y Tecnología |
5000 | Herrero | simple | digminecraft.com |
6000 | Ferguson | samantha | granactividad.com |
7000 | Reynolds | Alan | revisatumath.com |
8000 | anderson | Página | nulo |
9000 | Johnson | Derek | Red de Ciencia y Tecnología |
Ingrese la siguiente declaración SELECT usando la función COUNT:
SELECT COUNT(customer_id) FROM customers;
Se seleccionará 1 registro. Estos son los resultados que deberías ver:
contar (identificación del cliente) |
---|
6 |
En este ejemplo, la consulta devolverá 6 porque hay 6 registros en la tabla de clientes y ninguno de los valores de id_cliente es NULO (es decir, id_cliente es la clave principal de la tabla).
Pero, ¿qué sucede cuando nos encontramos con valores NULL en la función COUNT? Ingresemos la siguiente declaración SELECT que cuenta la columna de sitio web favorito que puede contener valores NULL:
SELECT COUNT(favorite_website) FROM customers;
Se seleccionará 1 registro. Estos son los resultados que deberías ver:
COUNT(sitio_web_favorito) |
---|
5 |
El segundo ejemplo devolverá 5. Debido a que uno de los valores del sitio web favorito es NULL, se excluirá del cálculo de la función COUNT. Entonces la consulta devolverá 5 en lugar de 6.
propina: Use la clave principal en la función COUNT o COUNT
Si quiere estar seguro de no excluir registros del cálculo.
Ejemplo: uso de una sola expresión en la función CONTAR
Veamos un ejemplo que muestra cómo usar la función COUNT con una sola expresión en una consulta.
En este ejemplo, tenemos una tabla llamada empleados con los siguientes datos: | ID de empleado | apellido | nombre | salario |
---|---|---|---|---|
dept_id | 1001 | Herrero | John | 62000 |
500 | 1002 | anderson | simple | 57500 |
500 | 1003 | el Monte Everest | Puntilla | 71000 |
501 | 1004 | Horvath | Jack | 42000 |
501
SELECT COUNT(*) AS total FROM employees WHERE salary > 50000;
Ingrese la siguiente instrucción SQL:
Se seleccionará 1 registro. Estos son los resultados que deberías ver: |
---|
todo |
3
En este ejemplo, devolveremos la cantidad de empleados cuyo salario es superior a $ 50,000.nos alias COUNT
En total, hace que los resultados de nuestra consulta sean más legibles. Ahora, cuando se devuelva el conjunto de resultados, el total se mostrará como encabezado de columna.
Ejemplo: uso de GROUP BY con la función COUNT
En algunos casos, debe usar la cláusula GROUP BY con la función COUNT. Esto sucede cuando enumera columnas en la declaración SELECT que no forman parte de la función COUNT. Exploremos esto más a fondo. | Nuevamente, use la tabla de empleados con los siguientes datos: | ID de empleado | apellido | nombre |
---|---|---|---|---|
salario | dept_id | 1001 | Herrero | John |
62000 | 500 | 1002 | anderson | simple |
57500 | 500 | 1003 | el Monte Everest | Puntilla |
71000 | 501 | 1004 | Horvath | Jack |
42000
SELECT dept_id, COUNT(*) AS total FROM employees WHERE salary > 50000 GROUP BY dept_id;
501
Ingrese la siguiente instrucción SQL: | Se seleccionarán 2 registros. Estos son los resultados que deberías ver: |
---|---|
dept_id | todo |
500 | 2 |
501
1
En este ejemplo, la función COUNT devolverá la cantidad de empleados que ganan más de $50,000 por dept_id. Debido a que la columna dept_id no está incluida en la función COUNT, debe aparecer en la cláusula GROUP BY.
Ejemplo: uso de DISTINCT con la función COUNT
¿Sabía que puede usar la cláusula DISTINCT en la función COUNT? Esto le permite contar solo valores únicos. | Usando la misma tabla de empleados que en el ejemplo anterior: | ID de empleado | apellido | nombre |
---|---|---|---|---|
salario | dept_id | 1001 | Herrero | John |
62000 | 500 | 1002 | anderson | simple |
57500 | 500 | 1003 | el Monte Everest | Puntilla |
71000 | 501 | 1004 | Horvath | Jack |
42000
SELECT COUNT(DISTINCT dept_id) AS total FROM employees WHERE salary > 50000;
501
Ingrese la siguiente instrucción SQL: |
---|
Se seleccionará 1 registro. Estos son los resultados que deberías ver: |
todo
2
En este ejemplo, la función COUNT devolverá el valor dept_id del número único de empleados con al menos un empleado que gana más de $50,000. COUNT(1)
Sugerencia: use la función COUNT para ajustar el rendimiento
Dado que la función CONTAR devolverá el mismo resultado, sin importar qué campos NO NULOS incluya como argumentos de la función CONTAR (es decir, entre paréntesis), puede usar
SELECT dept_id, COUNT(*) AS total FROM employees WHERE salary > 50000 GROUP BY dept_id;
para un mejor rendimiento. Ahora el motor de la base de datos no tendrá que buscar ningún campo de datos, sino simplemente recuperar el valor entero 1. COUNT(*)
Por ejemplo, no ingrese esta declaración: COUNT(1)
puedes reemplazar
SELECT dept_id, COUNT(1) AS total FROM employees WHERE salary > 50000 GROUP BY dept_id;
y
para un mejor rendimiento:
La función COUNT ahora no necesita recuperar todos los campos de la tabla de empleados como lo hace cuando se usa COUNT
sintaxis. Solo recuperará el valor 1 para cada registro que cumpla con sus criterios.
Ejercicios de práctica Si quiere poner a prueba sus habilidades con la función SQL COUNT, pruebe algunos de nuestros ejercicios. Estos ejercicios le permiten usar la función COUNT para probar sus habilidades. Recibirá preguntas que necesitan ser resueltas. Después de cada ejercicio, proporcionamos soluciones para que puedas comprobar tus respuestas. ¡Darle una oportunidad!