PostgreSQL: 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.

PostgreSQL: función de conteo

Este tutorial de PostgreSQL explica cómo usar PostgreSQL función de conteo Con sintaxis y ejemplos.

describir

La función de conteo de PostgreSQL devuelve el conteo de una expresión.

sintaxis

La sintaxis de la función de conteo en PostgreSQL es:

SELECT count(aggregate_expression)
FROM tables
[WHERE conditions];

O cuando se agrupan los resultados por una o más columnas, la sintaxis de la función de conteo 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 de recuento 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 de conteo solo incluirá registros en el conteo donde el valor de la expresión en el conteo (expresión) NO ES NULO. Cuando la expresión contiene un valor NULL, no se incluye en el cálculo de conteo.

Veamos un ejemplo de la función de conteo que demuestra cómo la función de conteo evalúa los valores NULL.

Por ejemplo, si tienes la siguiente tabla llamada proveedores:

Identificación del proveedor Nombre del proveedor Expresar
1 IBM California
2 microsoft
3 nvidia

Si ejecuta la siguiente declaración SELECT usando la función de conteo:

SELECT count(supplier_id)
FROM suppliers;

Result: 3

Este ejemplo de recuento devolvería 3 porque ninguno de los valores de ID de proveedor en el conjunto de resultados de la consulta es NULO.

Sin embargo, si ejecuta la siguiente declaración SELECT que usa la función de conteo:

SELECT count(state) 
FROM suppliers;

Result: 1

Este ejemplo de recuento solo devolverá 1 porque solo hay un valor de estado en el conjunto de resultados de la consulta que no es NULL. Esa sería la primera línea con state=”CA”. Es la única fila incluida en el cálculo de la función de conteo.

aplicar para

La función de conteo está disponible en las siguientes versiones de PostgreSQL:

  • PostgreSQL 9.4, PostgreSQL 9.3, PostgreSQL 9.2, PostgreSQL 9.1, PostgreSQL 9.0, PostgreSQL 8.4

Ejemplo: usar una sola expresión

Veamos algunos ejemplos de funciones de conteo de PostgreSQL y exploremos cómo usar las funciones de conteo en PostgreSQL.

Por ejemplo, es posible que desee saber la cantidad de productos cuyo tipo de producto es “Hardware”.

SELECT count(*) AS "Number of products"
FROM products
WHERE product_type="Hardware";

En este ejemplo de función de conteo, le damos un alias al conteo

Expresado como “Cantidad de producto”. Por lo tanto, cuando se devuelva el conjunto de resultados, se mostrará “Cantidad de producto” como nombre de campo.

Ejemplo: uso de DISTINCT

SELECT count(DISTINCT department) AS "Unique departments"
FROM employees
WHERE salary > 55000;

Puede usar la cláusula DISTINCT en la función de conteo. Por ejemplo, la siguiente instrucción SQL devuelve la cantidad de departamentos únicos donde al menos un empleado gana más de $55,000 al año.

Del mismo modo, el campo de recuento (departamento DISTINTO) tiene un alias como “Departamento único”. 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 de conteo.

SELECT department, count(*) AS "Number of employees"
FROM employees
WHERE salary > 40000
GROUP BY department;

Por ejemplo, también puede usar la función de conteo para obtener el nombre del departamento y la cantidad de empleados (en el departamento correspondiente) que ganan más de $40,000.

Debido a que enumeró una columna en la declaración SELECT que no estaba encapsulada en la función de conteo, debe usar la cláusula GROUP BY. Por lo tanto, el campo de departamento debe aparecer en la sección GROUP BY.