martes, 5 de julio de 2016

Receta T-SQL No. 4-13: ¿Cómo Usar la Operación Intersección INTERSECT en T-SQL?

Índice

1. Introducción
2. 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: 
Intersección de conjuntos
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
Productos con calificaciones positivas y negativas
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.