Las condiciones en la clausula WHERE restringen las filas devueltas
por una consulta. Las filas son incluidas si cumplen las condiciones listas en
la clausula WHERE y alguna veces son conocidas como row-level results. Filas agrupadas con la clausula GROUP BY y
aplicando funciones agregadas a estos resultados a menudo se les conoce como
group-level results.
La siguiente consulta limita las filas recuperadas de la tabla
JOB_HISTORY mediante una condición en la clausula WHERE, esta condición está
basada en la columna DEPARTMENT_ID.
select department_id
from job_history
where department_id in (50,60,80,110)
Esta consulta devuelve 7 filas. Si la clausula WHERE estuviera ausente,
todas las filas serian recuperadas. Suponga que usted desea conocer cuántos
empleados fueron previamente empleados en cada departamento. Hay 7 filas que pueden ser manualmente
agrupadas y contadas. Sin embargo. Si hubieran mas filas o una gran cantidad de filas una función agregada
sería utilizada, como se muestra en la siguiente consulta:
select department_id, COUNT(*)
from job_history
where department_id IN
(50,60,80,110)
group by department_id;
Esta consulta es muy similar a la anterior, la función agregada COUNT
fue agregada a la lista SELECT y la clausula GROUP BY DEPARTMENT_ID fue también
agregada. Cuatro filas con sus recuentos son devueltas y es claramente que los
siete registros restringidos mediante la clausula WHERE fueron agrupados en
cuatro grupos en base al DEPARTMENT_ID.
Suponga que usted desea refinar este resultado y solo incluir los
departamentos con mas de un empleado. La clausula HAVING limita o restringe la
filas a nivel grupo.
Esta consulta debe desarrollar los siguientes pasos siguientes:
1.
Considere el conjunto de datos entero a nivel
fila.
2.
Limitar el conjunto de datos basado en la
clausula WHERE.
3.
Segmentar los datos en uno o más grupos
utilizando atributos agrupadores especificados en la clausula GROUP BY.
4.
Aplicar funciones agregadas para crear un nuevo
conjunto de datos a nivel grupo. Cada fila puede ser considerada como una
agregación de sus datos de nivel de fila fuente basado en el grupo creado.
5.
Limitar o restringir el nivel grupo con una
clausula HAVING.
Comentarios
Publicar un comentario