Buscar..


Introducción

Cada base de datos es una colección de tablas diferentes y cada tabla contiene datos diferentes de forma organizada. Mientras trabajamos con datos, la mayoría de las veces la información que necesitamos está dispersa en más de una tabla. Necesitamos unir / fusionar para obtener el resultado deseado.

En SAS utilizamos uniones mientras trabajamos con Proc SQL y usamos la combinación mientras trabajamos con el Data step . Ahora hablaremos solo de las uniones dentro de Proc SQL .

Parámetros

Tipo de unión Salida
Proc Sql Procedimiento SQL dentro de SAS
Crear mesa Crea un conjunto de datos SAS
Seleccionar Selecciona las variables requeridas de los respectivos conjuntos de datos
Dónde Especifica condición particular
Dejar Terminar el procedimiento

Observaciones

Como se mencionó en la introducción, también podemos usar Merge dentro de un data step que se tratará en un tema aparte. Las uniones desempeñan un papel muy importante para combinar y unificar los datos de acuerdo con el requisito.

Unión vertical

La unión vertical agrega el conjunto de datos B al conjunto de datos A, siempre que ambos tengan variables similares. Por ejemplo, tenemos ventas para el mes del 17 de enero en el conjunto de datos A y ventas para el 17 de febrero en el conjunto de datos B. Para crear un conjunto de datos C que tenga ventas tanto de enero como de febrero, usamos Vertical Join.

PROC SQL;
CREATE TABLE C AS
SELECT *
FROM A
UNION 
SELECT *
FROM B;
QUIT;

Ahora el conjunto de datos C tiene observaciones tanto de A como de B y se adjunta verticalmente.

Unir internamente

La unión interna crea un conjunto de datos que contiene registros que tienen valores coincidentes de ambas tablas. Por ejemplo, tenemos un conjunto de datos A que contiene información del cliente y un conjunto de datos B que contiene los detalles de la tarjeta de crédito. Para obtener los detalles de la tarjeta de crédito de los clientes en el conjunto de datos A, creamos el conjunto de datos C

PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUM
FROM CUSTOMER A, CC_DETAILS B
WHERE A.CUSTOMERID=B.CUSTOMERID
QUIT;

El conjunto de datos C solo tendrá observaciones coincidentes de ambos conjuntos de datos.

Unirse a la izquierda

La combinación izquierda devuelve todas las observaciones en el conjunto de datos izquierdo independientemente de sus valores clave, pero solo las observaciones con valores clave coincidentes del conjunto de datos correcto. Teniendo en cuenta el mismo ejemplo que el anterior,

PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUMBER, B.START_DATE
FROM CUSTOMER A LEFT JOIN CC_DETAILS B
ON A.CUSTOMERID=B.CUSTOMERID
QUIT;

El conjunto de datos C contiene todos los valores de la tabla de la izquierda, más los valores coincidentes de la tabla de la derecha o los valores faltantes en el caso de que no haya coincidencia.

Unirse a la derecha

Al igual que la combinación izquierda, la combinación derecha selecciona todas las observaciones del conjunto de datos derecho y los registros coincidentes de la tabla izquierda.

PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUMBER, B.START_DATE
FROM CUSTOMER A RIGHT JOIN CC_DETAILS B
ON A.CUSTOMERID=B.CUSTOMERID
QUIT;

El conjunto de datos C contiene todos los valores de la tabla derecha, más los valores coincidentes de la tabla izquierda o los valores faltantes en el caso de que no haya coincidencia.

Unirse completo

La combinación completa selecciona todas las observaciones de ambos conjuntos de datos, pero faltan valores en los que el valor clave de cada observación se encuentra en una sola tabla.

PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUMBER, B.START_DATE
FROM CUSTOMER A FULL JOIN CC_DETAILS B 
ON A.CUSTOMERID=B.CUSTOMERID
QUIT;

El conjunto de datos C contendrá todos los registros de ambas tablas y se completará . por partidos perdidos en ambos lados.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow