Función COUNT de PostgreSQL

Resumen: en este tutorial, aprenderá a utilizar la función COUNT() de PostgreSQL para contar el número de filas de una tabla.

Resumen de la función COUNT() de PostgreSQL

La función COUNT() es una función agregada que permite obtener el número de filas que satisfacen una condición específica de una consulta.

La siguiente sentencia ilustra varias formas de utilizar la función COUNT().

COUNT(*)

La función COUNT(*) devuelve el número de filas devueltas por una sentencia SELECT, incluyendo NULL y duplicados.

Code language: SQL (Structured Query Language) (sql)

Cuando se aplica la función COUNT(*) a toda la tabla, PostgreSQL tiene que escanear toda la tabla secuencialmente.

Si se utiliza la función COUNT(*) en una tabla grande, la consulta será lenta. Esto está relacionado con la implementación MVCC de PostgreSQL. Debido a que múltiples transacciones ven diferentes estados de datos al mismo tiempo, no hay manera directa para que la función COUNT(*) cuente a través de toda la tabla, por lo tanto PostgreSQL debe escanear todas las filas.

COUNT(columna)

Similar a la función COUNT(*), la función COUNT(column) devuelve el número de filas devueltas por una cláusula SELECT. Sin embargo, no considera los valores NULL en la cláusula column.

Code language: SQL (Structured Query Language) (sql)

COUNT(DISTINCT columna)

En esta forma, la función COUNT(DISTINCT column) devuelve el número de valores únicos no nulos en la cláusula column.

Code language: SQL (Structured Query Language) (sql)

A menudo utilizamos la función COUNT() con la cláusula GROUP BY para devolver el número de elementos de cada grupo. Por ejemplo, podemos utilizar la función COUNT() con la cláusula GROUP BY para devolver el número de películas de cada categoría de películas.

Ejemplos de la función COUNT() de PostgreSQL

Usemos la tabla payment de la base de datos de ejemplo para la demostración.

1) Ejemplo de PostgreSQL COUNT(*)

La siguiente sentencia utiliza la función COUNT(*) para devolver el número de transacciones en la tabla payment:

Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

2) PostgreSQL COUNT(DISTINCT columna) ejemplo

Para obtener los importes distintos que pagaron los clientes, se utiliza la función COUNT(DISTINCT amount) como se muestra en el siguiente ejemplo:

Code language: SQL (Structured Query Language) (sql)

PostgreSQL COUNT() con cláusula GROUP BY

Para obtener el número de pagos del cliente, se utiliza la cláusula GROUP BY para agrupar los pagos en grupos basados en el id del cliente, y se utiliza la función COUNT() para contar los pagos de cada grupo.

La siguiente consulta ilustra la idea:

Code language: SQL (Structured Query Language) (sql)

Aquí está la salida parcial:

PostgreSQL COUNT() con cláusula HAVING

Puede utilizar la función COUNT en una cláusula HAVING para aplicar una condición específica a los grupos. Por ejemplo, la siguiente sentencia encuentra los clientes que han realizado más de 40 pagos:

Code language: SQL (Structured Query Language) (sql)

En este tutorial, ha aprendido a utilizar la función COUNT() de PostgreSQL para devolver el número de filas de una tabla.

  • ¿Ha sido útil este tutorial?
  • SíNo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.