> Manuales > Tutorial de Oracle

Aprendemos a agrupar elementos y a combinar filas seleccionadas con SQL para Oracle

Agrupación de elementos. Group by y Having:

Para saber cual es el salario medio de cada departamento de la tabla Jugadores sería:

   SELECT EQUIPO_NO, AVG (SALARIO) "SALARIO MEDIO"
   FROM JUGADORES
   GROUP BY DEPT_NO;


La sentencia "Select" posibilita agrupar uno o más conjuntos de filas. El agrupamiento se lleva a cabo mediante la cláusula "GROUP BY" por las columnas especificadas y en el orden especificado. Formato:

   SELECT…
   FROM…
   GROUP BY COLUMNA1, COLUMNA2, COLUMNAN…
   HAVING CONDICION
   GROUP BY …


Los datos seleccionados en la sentencia "Select" que lleva el "Group By" deben ser: La cláusula Group By sirve para calcular propiedades de uno o más conjuntos de filas. Si se selecciona más de un conjunto de filas, Group By controla que las filas de la tabla original sean agrupadas en un temporal.

La cláusula Having se emplea para controlar cual de los conjuntos de filas se visualiza. Se evalúa sobre la tabla que devuelve el Group By. No puede existir sin Group By.

Having es similar al Where, pero trabajo con grupos de filas; pregunta por una característica de grupo, es decir, pregunta por los resultados de las funciones de grupo, lo cual Where no pude hacer.

Combinación externa (outer joins):

Nos permite seleccionar algunas filas de una tabla aunque estas no tengan correspondencia con las filas de la otra tabla con la que se combina. Formato:

SELECT TABLA1.COLUMNA1, TABLA1.COLUMNA2, TABLA2.COLUMNA1, TABLA2.COLUMNA2
   FROM TABLA1, TABLA2
   WHERE TABLA1.COLUMNA1 = TABLA2.COLUMNA1 (+);


Esto selecciona todas las filas de la tabla "tabla1" aunque no tengan correspondencia con las filas de la tabla "tabla2", se utiliza el símbolo +.
El resto de columnas de la tabla "tabla2" se rellena con NULL.

Union, intersec y minus:

Permite combinar los resultados de varios "Select" para obtener un único resultado. Formato:

   SELECT… FROM… WHERE…
   OPERADOR_DE_CONJUNTO
   SELECT…FROM…WHERE…


UNION= Combina los resultados de dos consultas. Las filas duplicadas que aparecen se reducen a una fila única.
UNION ALL= Como la anterior pero aparecerán nombres duplicados.
INTERSEC= Devuelve las filas que son iguales en ambas consultas. Todas las filas duplicadas serán eliminadas.
MINUS= Devuelve aquellas filas que están en la primera "Select" y no están en la segunda "Select". Las filas duplicadas del primer conjunto se reducirán a una fila única antes de que empiece la comparación con el otro conjunto.

Reglas para la utilización de operadores de conjunto:

Agustin Jareño

Manual