Ir al contenido principal

Función COUNT – Parte 1 ok

La función COUNT cuenta el número de filas de un grupo. Su sintaxis es:

COUNT( {  * |  [ DISTINCT | ALL ] expr  } );

Su sintaxis puede ser descompuesta, de la siguiente manera:
COUNT(*)
COUNT(DISTINCT expr)
COUNT(ALL expr)
COUNT(expr)

Cuando COUNT(*) es llamado, todas las filas en el grupo, incluido valores null o duplicados son contados. Cuando COUNT(DISTINCT expr) es ejecutado, solo las ocurrencias únicas de expr son contadas por cada grupo. La palabra ALL es parte de la sintaxis por defecto, así que COUNT(ALL expr) y COUNT(expr) son equivalente. Esta cuanta el numero de ocurrencias no nulas de expr en cada grupo. El tipo de dato de expr puede ser NUMBER, DATE, CHAR y VARCHAR2. Si expr es un null, es ignorado a menos que sea manejado con las funciones NVL, NVL2 y COALESCE.

Ejemplo:
-- CONTAR EL NUMERO TOTAL DE REGISTROS EN COUNTRIES
-- INCLUIR VALORES NULOS
SELECT COUNT(*) FROM HR.countries;

-- CONTAR EL NUMERO TOTAL DE REGISTROS EN COUNTRIES
-- SIN INCLUIR VALORES NULOS
-- COMPORTAMIENTO POR DEFECTO
SELECT COUNT(region_id) FROM HR.countries;

-- CONTAR EL NUMERO TOTAL DE REGISTROS EN COUNTRIES
-- SIN INCLUIR VALORES NULOS
-- COMPORTAMIENTO POR DEFECTO
SELECT COUNT(ALL region_id) FROM HR.countries;

-- CONTAR EL NUMERO TOTAL DE REGISTROS UNICOS EN COUNTRIES
-- SIN INCLUIR VALORES NULOS
SELECT COUNT(DISTINCT region_id) FROM HR.countries;

-- CONTAR EL NUMERO TOTAL DE REGISTROS EN COUNTRIES AGRUPADOS POR REGION_ID
-- INCLUIR VALORES NULOS
SELECT region_id, COUNT(*) TOTAL_REGISTROS FROM   HR.countries
GROUP BY region_id;

-- CONTAR EL NUMERO TOTAL DE REGISTROS EN COUNTRIES AGRUPADOS POR REGION_ID
-- SIN INCLUIR VALORES NULOS
SELECT region_id, COUNT(region_id) TOTAL_REGISTROS FROM   HR.countries
GROUP BY region_id;

-- CONTAR EL NUMERO TOTAL DE REGISTROS EN COUNTRIES AGRUPADOS POR REGION_ID
-- SIN INCLUIR VALORES NULOS
SELECT region_id, COUNT(ALL region_id) TOTAL_REGISTROS FROM   HR.countries
GROUP BY region_id;

-- CONTAR EL NUMERO TOTAL DE REGISTROS EN COUNTRIES AGRUPADOS POR REGION_ID
-- SIN INCLUIR VALORES NULOS
SELECT region_id, COUNT(DISTINCT region_id) TOTAL_REGISTROS FROM HR.countries
GROUP BY region_id;


SELECT NVL(region_id,'-1') REGION_ID, COUNT(NVL(region_id,'-1')) TOTAL_REGISTROSFROM   HR.countries GROUP BY region_id;

Comentarios