sas
Utilizzo di join in SAS
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.