SQL: función de conteo

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 clienteapellidonombresitio favorito
4000jacksonJoséRed de Ciencia y Tecnología
5000Herrerosimpledigminecraft.com
6000Fergusonsamanthagranactividad.com
7000ReynoldsAlanrevisatumath.com
8000andersonPáginanulo
9000JohnsonDerekRed 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 empleadoapellidonombresalario
dept_id1001HerreroJohn62000
5001002andersonsimple57500
5001003el Monte EverestPuntilla71000
5011004HorvathJack42000

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 empleadoapellidonombre
salariodept_id1001HerreroJohn
620005001002andersonsimple
575005001003el Monte EverestPuntilla
710005011004HorvathJack

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_idtodo
5002

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 empleadoapellidonombre
salariodept_id1001HerreroJohn
620005001002andersonsimple
575005001003el Monte EverestPuntilla
710005011004HorvathJack

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!

(Visited 5 times, 1 visits today)