Databases
T01-007-02 Funciones de agregado
Enunciado
COUNT(*|expresión)Cuenta el número de veces que la expresión evalúa algún dato con valor no nulo. Para seleccionar filas con valores distintos se debería utilizarDISTINCT.Ejemplos:
La siguiente sentencia muestra el número de países que pertenecen a la región cuyo identificador es el 1 y que están registrados en el esquema HR:
SELECT COUNT(*)
FROM HR.countries
WHERE REGION_ID = 1
COUNT(*) 8 Si queremos contar el número de valores no nulos que existen en un atributo, en lugar del
*utilizaríamos el nombre de ese atributo. Por ejemplo: ¿a cuántos empleados se les paga alguna comisión?Las dos sentencias siguientes permiten obtener la solución a la pregunta anterior:
SELECT COUNT(COMMISSION_PCT)
FROM HR.employees;
COUNT(COMMISSION_PCT) 35
SELECT COUNT(*)
FROM HR.employees
WHERE COMMISSION_PCT IS NOT NULL;
COUNT(*) 35 Por último, en el caso en el que únicamente queramos contabilizar los valores no repetidos que existen en un expresión o atributo, utilizaríamos la clásula
DISTINCT.Por ejemplo, si contamos el número de departamentos alamacenados en la tabla
departmentsdel esquemaHR, el resultado será de:
SELECT COUNT(*)
FROM HR.departments
COUNT(*) 27 En cambio, mirando en la tabla
employees, podemos ver que no hay empleados asociados a todos los departamentos:
SELECT COUNT(DISTINCT DEPARTMENT_ID) AS "DEPARTAMENTOS CON EMPLEADOS"
FROM HR.employees
DEPARTAMENTOS CON EMPLEADOS 11 Ejercicio:
¿Cuántos programadores (IT_PROG) tienen un salario superior a 5000?
Tipo
Solución
SELECT COUNT(*) AS "PROGRAMADORES MEJOR PAGADOS"
FROM HR.employees
WHERE JOB_ID = 'IT_PROG' AND SALARY > 5000
Prueba
LibrerÃas (Onfly databases)

