Índice
1. Introducción2. Palabras Clave
3. Problema
4. Solución
5. Discusión de la Solución
5.1 Operador INTERSECT
6. Práctica: Recuperación de Registros con Bajas y Altas Calificaciones
7. Conclusiones
8. Literatura & Enlaces
1. Introducción
En la anterior receta se trató cómo encontrar la diferencia entre dos conjuntos de registros por medio del operador EXCEPT; ahora es la oportunidad de tratar con el operador INTERSECT para hallar la intersección entre registros de dos conjuntos de registros distintos. Para demostrar su uso se recurre al problema de encontrar los productos que han recibido bajas y altas calificaciones.
2. Palabras Clave
- Intersección
- Conjunto
- Registro
3. Problema
Encontrar los productos que han recibido bajas y altas calificaciones.
4. Solución
El operador INTERSECT de T-SQL permite encontrar registros en la tabla Production.ProductReview de la base de datos AdventureWorks2012.
5. Discusión de la Solución
5.1 Operador INTERSECT
T-SQL cuenta con el operador INTERSECT para efectuar la intersección entre conjunto de resultados de una expresión o consulta. Gráficamente se puede ilustrar de la siguiente manera:
Figura 1. Intersección de conjuntos. |
La región resaltada en color naranja representa la intersección de los elementos comunes entre los conjuntos A y B.
La sintaxis de declaración es como viene
{ expresión_1 }
EXCEPT
{ expresion_2 }
Como ejemplo básico se puede considerar la recuperación de registros comunes de dos consultas:
SELECT ProductID
FROM Production.Product
INTERSECT
SELECT ProductID
FROM Production.WorkOrder
6. Práctica: Recuperación de Registros Con Bajas y Altas Calificaciones
Este ejemplo demuestra cómo recuperar las valoraciones positivas y negativas que ha recibido un producto haciendo uso del operador de intersección de conjuntos INTERSECT.
La primera parte de esta expresión recupera todos los productos que tienen una calificación positiva, mientras que la segunda aquellos que tienen una negativa; luego se aplica el operación de intersección con INTERSECT para retornar todos los productos que tienen ambas calificaciones.
Resultado obtenido de la ejecución en Microsoft SQL Management Studio:
Figura 2. Productos con calificaciones positivas y negativas. |
7. Conclusiones
El operador INTERSECT permite obtener los registros comunes entre dos conjuntos. Se demostró su utilidad en la obtención de aquellos productos que han obtenido bajas y altas calificaciones.
Para encontrar cuáles son los registros que no están en una tabla pero sí en otra, la siguiente receta T-SQL explicará este proceso con un ejemplo claro y directo.
8. Literatura & Enlaces
Brimhall, J., Dye, D., Gennick, J., Roberts, A., Sheffield, W. (2012). SQL Server 2012 T-SQL Recipes - A Problem-Solution Approach. United States: Apress.EXCEPT and INTERSECT (Transact-SQL) (2016, julio 5). Recuperado desde: https://msdn.microsoft.com/en-us/library/ms188055.aspx
V
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.