Ricerca…


introduzione

Ogni database è una raccolta di tabelle diverse e ogni tabella contiene dati diversi in modo organizzato. Lavorando con i dati, la maggior parte delle volte le informazioni di cui abbiamo bisogno sono sparse in più di una tabella. Abbiamo bisogno di unire / unire per ottenere l'output desiderato.

In SAS utilizziamo i join mentre lavoriamo con Proc SQL e usiamo l'unione mentre lavoriamo con il Data step . Parleremo ora solo dei join all'interno di Proc SQL .

Parametri

Tipo di join Produzione
Proc Sql Procedura SQL all'interno di SAS
Crea tabella Crea un set di dati SAS
Selezionare Seleziona le variabili richieste dai rispettivi set di dati
Dove Specifica una condizione particolare
Smettere Termina la procedura

Osservazioni

Come accennato nell'introduzione, possiamo anche utilizzare Merge all'interno di un data step che sarà discusso in un argomento separato. Le unioni giocano un ruolo molto importante per fondere e unificare i dati secondo i requisiti.

Unione verticale

Il join verticale aggiunge il set di dati B al set di dati A fornendo entrambi variabili simili. Ad esempio, nel set di dati del mese di gennaio sono disponibili le vendite per il mese di gennaio '17 e il fatturato per il 17 febbraio. Per creare un set di dati C con vendite sia di gennaio che di febbraio, utilizziamo il join verticale.

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

Ora il set di dati C ha osservazioni sia da A che da B e viene aggiunto in verticale.

Join interno

Inner join crea un set di dati che contiene record che hanno valori corrispondenti da entrambe le tabelle. Ad esempio, abbiamo un set di dati A che contiene informazioni sui clienti e un set di dati B che contiene i dati della carta di credito. Per ottenere i dati della carta di credito dei clienti nel set di dati A, creiamo il set di dati C

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

Il set di dati C avrà solo le osservazioni corrispondenti da entrambi i set di dati.

Sinistra Iscriviti

L'unione sinistra restituisce tutte le osservazioni nell'insieme di dati sinistro, indipendentemente dai relativi valori chiave, ma solo le osservazioni con valori chiave corrispondenti dal set di dati corretto. Considerando lo stesso esempio di sopra,

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;

Il set di dati C contiene tutti i valori della tabella di sinistra, oltre ai valori corrispondenti dalla tabella di destra o ai valori mancanti nel caso di mancata corrispondenza.

Iscriviti a destra

Come join sinistro, join destro seleziona tutte le osservazioni dal set di dati corretto e i record corrispondenti dalla tabella sinistra.

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;

Il set di dati C contiene tutti i valori della tabella di destra, oltre ai valori corrispondenti dalla tabella sinistra o i valori mancanti nel caso di mancata corrispondenza.

Iscriviti completo

Il join completo seleziona tutte le osservazioni da entrambi i set di dati, ma mancano valori in cui il valore chiave in ogni osservazione è presente solo in una tabella.

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;

Il set di dati C conterrà tutti i record di entrambe le tabelle e riempirà . per partite mancanti su entrambi i lati.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow