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 Server: función de conteo
Este tutorial de SQL Server describe cómo usar función de conteo Sintaxis y ejemplos en SQL Server (Transact-SQL).
describir
En SQL Server (Transact-SQL), la función COUNT devuelve el recuento de una expresión.
sintaxis
La sintaxis de la función CONTAR en SQL Server (Transact-SQL) es:
SELECT COUNT(aggregate_expression) FROM tables [WHERE conditions];
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;
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.
Incluir solo valores NOT NULL
No todos se dan cuenta de esto, pero la función CONTAR solo incluirá registros en el conteo donde el valor de la expresión en CONTAR (expresión) no sea NULL. Cuando la expresión contiene un valor NULL, no se incluye en el cálculo COUNT.
Veamos un ejemplo de la función CONTAR que demuestra cómo la función CONTAR evalúa valores NULL.
Por ejemplo, si tiene la siguiente tabla llamada sitio web:
id_sitio web | URL | Nombre del Sitio Web |
---|---|---|
1 | www.TechOnTheNet.com | tecnología de redes |
2 | www.CheckYourMath.com | |
3 | www.BigActivities.com |
Si ejecuta la siguiente declaración SELECT usando la función COUNT:
SELECT COUNT(website_id) FROM websites; Result: 3
Este ejemplo de COUNT devolverá 3 porque ninguno de los valores de website_id en el conjunto de resultados de la consulta es NULL.
Sin embargo, si ejecuta la siguiente declaración SELECT que usa la función COUNT:
SELECT COUNT(website_name) FROM websites; Result: 1
Este ejemplo de COUNT solo devolverá 1 porque solo hay un valor de website_name no nulo en el conjunto de resultados de la consulta. Esa sería la primera línea de website_name=”Programar Plus”. Es la única fila incluida en el cálculo de la función CONTAR.
aplicar para
La función COUNT está disponible en las siguientes versiones de SQL Server (Transact-SQL):
- Servidor SQL 2017, Servidor SQL 2016, Servidor SQL 2014, Servidor SQL 2012, Servidor SQL 2008 R2, Servidor SQL 2008, Servidor SQL 2005
Ejemplo: usar un solo campo
Veamos algunos ejemplos de la función COUNT de SQL Server y exploremos cómo usar la función COUNT en SQL Server (Transact-SQL).
Por ejemplo, es posible que desee saber cuántos contactos tienen el apellido “Anderson”.
SELECT COUNT(*) AS "Number of contacts" FROM contacts WHERE last_name="Anderson";
En este ejemplo de la función COUNT, usamos el alias COUNT
La expresión es “Número de contactos”. Por lo tanto, cuando se devuelva el conjunto de resultados, se mostrará “Número de contactos” como nombre de campo.
Ejemplo: uso de DISTINCT
SELECT COUNT(DISTINCT department) AS "Unique departments" FROM employees WHERE first_name="John";
Puede usar la cláusula DISTINCT en la función COUNT. Por ejemplo, la siguiente instrucción SQL devuelve el número de departamentos únicos con al menos un empleado llamado “John”.
Del mismo modo, el campo COUNT(DISTINCT departamento) tiene un alias como “Unique Department”. Este es el nombre de campo que aparecerá en el conjunto de resultados.
Ejemplo: uso de GROUP BY
En algunos casos, debe usar la cláusula GROUP BY con la función COUNT.
SELECT department, COUNT(*) AS "Number of employees" FROM employees WHERE state="CA" GROUP BY department;
Por ejemplo, también puede usar la función COUNT para devolver el nombre del departamento y la cantidad de empleados en el estado “CA” (en el departamento correspondiente).
Debido a que enumeró una columna en la declaración SELECT que no estaba encapsulada en la función COUNT, debe usar la cláusula GROUP BY. Por lo tanto, el campo de departamento debe aparecer en la sección GROUP BY.