Función COUNT - Amazon Redshift

Función COUNT

La función COUNT cuenta las filas definidas por la expresión.

La función COUNT tiene las siguientes variaciones.

  • COUNT ( * ) cuenta todas las filas en la tabla destino, incluya o no valores nulos.

  • COUNT ( expresión ) calcula el número de filas con valores no NULL de una determinada columna o expresión.

  • COUNT ( DISTINCT expresión ) calcula el número de valores no NULL diferentes de una columna o expresión.

  • APPROXIMATE COUNT DISTINCT realiza un cálculo aproximado del número de valores distintos de NULL diferentes de una columna o una expresión.

Sintaxis

COUNT( * | expression )
COUNT ( [ DISTINCT | ALL ] expression )
APPROXIMATE COUNT ( DISTINCT expression )

Argumentos

expression

La columna o expresión de destino sobre la que opera la función. La función COUNT admite todos los tipos de datos de argumentos.

DISTINCT | ALL

Con el argumento DISTINCT, la función elimina todos los valores duplicados de la expresión especificada antes de hacer el conteo. Con el argumento ALL, la función retiene todos los valores duplicados de la expresión para el conteo. El valor predeterminado es ALL.

APPROXIMATE

Cuando se usa con APPROXIMATE, la función COUNT DISTINCT utiliza un algoritmo HyperLogLog para realizar un cálculo aproximado del número de valores distintos de NULL de una columna o una expresión. Las consultas que utilizan la palabra clave APPROXIMATE se ejecutan mucho más rápido, con un margen de error relativamente bajo de alrededor del 2 %. La aproximación se justifica para consultas que devuelven una cantidad grande de valores distintos, millones o más por consulta, o por grupo, si es que hay una cláusula de grupo. Para conjuntos más pequeños de valores distintos, en miles, la aproximación puede ser más lenta que un conteo preciso. APPROXIMATE solo se puede usar con COUNT DISTINCT.

Tipo de retorno

La función COUNT devuelve BIGINT.

Ejemplos

Contar todos los usuarios del estado de Florida:

select count(*) from users where state='FL'; count ------- 510

Cuenta todos los nombres de evento de la tabla EVENT:

select count(eventname) from event; count ------- 8798

Cuenta todos los nombres de evento de la tabla EVENT:

select count(all eventname) from event; count ------- 8798

Contar todos los ID únicos de lugares de la tabla EVENT:

select count(distinct venueid) as venues from event; venues -------- 204

Contar la cantidad de veces que cada vendedor indicó lotes de más de cuatro tickets para venta. Agrupar los resultados según ID de vendedor:

select count(*), sellerid from listing where numtickets > 4 group by sellerid order by 1 desc, 2; count | sellerid ------+---------- 12 | 6386 11 | 17304 11 | 20123 11 | 25428 ...

En los siguientes ejemplos, se comparan los valores de retorno y los tiempos de ejecución para COUNT y APPROXIMATE COUNT.

select count(distinct pricepaid) from sales; count ------- 4528 Time: 48.048 ms select approximate count(distinct pricepaid) from sales; count ------- 4553 Time: 21.728 ms