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 utilizar DISTINCT.

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 departments del esquema HR, 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

SELECT

Solución


												
SELECT COUNT(*) AS "PROGRAMADORES MEJOR PAGADOS" FROM HR.employees WHERE JOB_ID = 'IT_PROG' AND SALARY > 5000

Prueba


											

Librerías (Onfly databases)