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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow