수색…


소개

각 데이터베이스는 서로 다른 테이블의 모음이며 각 테이블에는 체계적인 방식으로 서로 다른 데이터가 들어 있습니다. 데이터로 작업하는 동안 우리가 필요로하는 대부분의 시간 정보는 여러 테이블에 분산되어 있습니다. 원하는 출력을 얻으려면 조인 / 병합이 필요합니다.

SAS에서는 Proc SQL 작업하는 동안 조인을 사용하고 Data step 작업하는 동안 병합을 사용 Data step . 이제 Proc SQL 내부의 조인에 대해서만 이야기 할 것입니다.

매개 변수

조인 유형 산출
Proc SQL SAS 내부의 SQL 프로 시저
표 만들기 SAS 데이터 세트를 만듭니다.
고르다 각 데이터 세트에서 필수 변수를 선택합니다.
어디에 특정 조건을 지정합니다.
떠나다 절차 끝내기

비고

소개에서 언급했듯이, 우리는 별도의 주제로 논의 될 data step 내에서 Merge 를 사용할 수도 있습니다. 조인은 요구 사항에 따라 데이터를 혼합하고 통합하는 데 매우 중요한 역할을합니다.

세로 결합

수직 조인은 데이터 세트 B를 데이터 세트 A에 추가합니다. 둘 다 비슷한 변수를 제공해야합니다. 예를 들어, 데이터 세트 A에서 1 월 17 일의 판매가 있고 데이터 세트 B에서 2 월 17 일의 판매가 있습니다. 1 월과 2 월 판매가 모두있는 데이터 세트 C를 작성하려면 수직 결합을 사용하십시오.

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

이제 데이터 세트 C에는 A와 B의 관측치가 있으며 수직으로 추가됩니다.

내부 결합

내부 조인은 두 테이블의 값이 일치하는 레코드가 포함 된 데이터 집합을 만듭니다. 예를 들어 고객 정보가 포함 된 A 데이터 집합과 신용 카드 세부 정보가 포함 된 B 데이터 집합이 있습니다. 데이터 세트 A에서 고객의 신용 카드 정보를 얻으려면 데이터 세트 C를 작성하십시오.

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

데이터 세트 C는 두 데이터 세트의 일치하는 관측 만 갖습니다.

왼쪽 가입

왼쪽 조인은 키 값에 관계없이 왼쪽 데이터 세트의 모든 관측치를 반환하지만 올바른 데이터 세트의 키 값과 일치하는 관측치 만 반환합니다. 상기와 같은 예를 고려하면,

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;

데이터 세트 C에는 왼쪽 테이블의 모든 값과 오른쪽 테이블의 일치 값 또는 일치하지 않는 경우 누락 된 값이 포함됩니다.

오른쪽 조인

왼쪽 조인과 마찬가지로 오른쪽 조인은 오른쪽 데이터 세트의 모든 관측치와 왼쪽 테이블의 일치하는 레코드를 선택합니다.

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;

데이터 세트 C에는 오른쪽 테이블의 모든 값과 왼쪽 테이블의 일치 값 또는 일치하지 않는 경우 누락 된 값이 포함됩니다.

전체 참여

전체 조인은 두 데이터 세트의 모든 관측치를 선택하지만 각 관측치의 키 값이 하나의 테이블에서만 발견되는 누락 값이 있습니다.

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;

데이터 세트 C는 두 테이블의 모든 레코드를 포함하고 채 웁니다 . 양쪽에 성냥이 없다면.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow