sas
Używanie połączeń w SAS
Szukaj…
Wprowadzenie
Każda baza danych jest zbiorem różnych tabel, a każda tabela zawiera różne dane w zorganizowany sposób. Podczas pracy z danymi większość potrzebnych informacji jest rozproszona w więcej niż jednej tabeli. Potrzebujemy złączeń / scalania, aby uzyskać pożądany wynik.
W SAS używamy złączeń podczas pracy z Proc SQL
i używamy scalania podczas pracy z Data step
. Będziemy teraz mówić tylko o sprzężeniach wewnątrz Proc SQL
.
Parametry
Rodzaj przyłączenia | Wynik |
---|---|
Proc Sql | Procedura SQL wewnątrz SAS |
Utwórz tabelę | Tworzy zestaw danych SAS |
Wybierz | Wybiera wymagane zmienne z odpowiednich zestawów danych |
Gdzie | Określa konkretny warunek |
Porzucić | Zakończ procedurę |
Uwagi
Jak wspomniano we wstępie, możemy również użyć Merge
w data step
który zostanie omówiony w osobnym temacie. Połączenia odgrywają bardzo ważną rolę w łączeniu i ujednolicaniu danych zgodnie z wymaganiami.
Łączenie pionowe
Łączenie w pionie dołącza zestaw danych B do zestawu danych A, pod warunkiem że oba mają podobne zmienne. Na przykład, mamy sprzedaż dla miesiąca stycznia 2017 w zestawie danych A i sprzedaż lutego 17 w zestawie danych B. Aby utworzyć zestaw danych C, który ma sprzedaż zarówno stycznia, jak i lutego, używamy Łączenia pionowego.
PROC SQL;
CREATE TABLE C AS
SELECT *
FROM A
UNION
SELECT *
FROM B;
QUIT;
Teraz zestaw danych C zawiera obserwacje z A i B i jest dołączany pionowo.
Przyłączenie wewnętrzne
Łączenie wewnętrzne tworzy zestaw danych, który zawiera rekordy, które mają pasujące wartości z obu tabel. Na przykład mamy zestaw danych A, który zawiera informacje o kliencie, i zestaw danych B, który zawiera dane karty kredytowej. Aby uzyskać dane karty kredytowej klientów w zestawie danych A, utwórzmy zestaw danych C
PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUM
FROM CUSTOMER A, CC_DETAILS B
WHERE A.CUSTOMERID=B.CUSTOMERID
QUIT;
Zestaw danych C będzie zawierał tylko pasujące obserwacje z obu zestawów danych.
Left Join
Łączenie w lewo zwraca wszystkie obserwacje z lewego zestawu danych, niezależnie od ich kluczowych wartości, ale tylko obserwacje z pasującymi wartościami klucza z prawego zestawu danych. Biorąc pod uwagę ten sam przykład, co powyżej,
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;
Zestaw danych C zawiera wszystkie wartości z lewej tabeli, a także dopasowane wartości z prawej tabeli lub brakujące wartości w przypadku braku zgodności.
Prawe dołączenie
Podobnie jak lewe łączenie, prawe łączenie wybiera wszystkie obserwacje z prawego zestawu danych i dopasowane rekordy z lewej tabeli.
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;
Zestaw danych C zawiera wszystkie wartości z prawej tabeli, a także dopasowane wartości z lewej tabeli lub brakujące wartości w przypadku braku zgodności.
Pełne dołączenie
Pełne sprzężenie wybiera wszystkie obserwacje z obu zestawów danych, ale brakuje wartości, w których kluczowa wartość w każdej obserwacji znajduje się tylko w jednej tabeli.
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;
Zestaw danych C będzie zawierał wszystkie rekordy z obu tabel i będzie wypełniał .
za brakujące mecze po obu stronach.