Agrupación y combinación de elementos con SQL
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:
- Una constante.
- Una función de grupo (SUM, COUNT, AVG…)
- Una columna expresada en el Group By.
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:
- Las columnas de las dos consultas se relacionan en orden, de izquierda a derecha.
- Los nombres de columna de la primera sentencia "Select" no tiene porque ser los mismos que los nombres de la segunda.
- Los "Select" necesitan tener el mismo numero de columnas.
- Los tipos de datos deben coincidir, aunque la longitud no tiene que ser la misma.
Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 2 comentarios no revisados
| Autoría, licencia y acciones sobre este artículo |
|
|
Manuales relacionados con este artículo
Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en
Lenguaje SQL
| Comentarios sin revisar |
|
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
|
Se han encontrado 2 comentarios sin revisar
Ir arriba