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