Microsoft Faric

Power Query 편집기에서 OUTER JOIN

정홍주 2025. 9. 1. 08:00

 

Power Query 편집기에서 OUTER JOIN

 

Power Query 편집기에서 조인을 문의한 내용이 있어 간략히 정리합니다.

매출 데이터가 적재되었지만, 구매를 취소하거나 변경하여 적재된 데이터가 바뀌어야 하는 상황이 있는 경우가 자주 있습니다. 보정을 해야 하는 데이터(지난 달)는 별도 csv 또는 시트로 매월 제공이 되어 지난 달 데이터를 변경해야 합니다.

데이터베이스라면 보정 테이블에 데이터를 적재하고 매출 데이터와 조인으로 업데이트하는 구문을 배치로 업데이트하면 되겠죠. 데이터베이스를 사용하지 않아 Power Query 편집기로 사용해보겠습니다.

Power Query 편집기는 Dataflow Gen2, 웹의 데이터 모델 열기, Power BI Desktop에서 거의 동일하게 사용할 수 있습니다.

 

요구사항을 먼저 확인해야 하겠지만, Power Query 편집기에서 보정 파일과 조인을 통해 최신 데이터로 업데이트를 해보겠습니다.

보정 데이터는 매출 데이터와 구조는 동일하며 일부 변경된 주문정보만 존재합니다. 주문수량과 금액이 변경된 데이터만 있는 파일입니다.

데이터 원본을 연결하여 데이터를 가져온 후, Power Query 편집기에서 [쿼리 병합]을 선택하여(쿼리 창의 빈 부분을 오른쪽 클릭) 조인할 테이블을 선택합니다. 왼쪽 테이블을 어떤 테이블로 할지 여부를 결정해야 합니다. 조인할 키를 선택하고, 적절한 조인 방법을 선택합니다.

여기서는 왼쪽 테이블이 매출 테이블(FactInternetSales)이고 오른쪽 테이블(FactInternetSales-Error)이므로 왼쪽 우선 외부(LEFT OUTER JOIN)를 선택합니다. (한글 어감이 이상하지만 아이콘 그림을 참고하십시오)

조인된 쿼리에서 테이블을 확장합니다. 변경된 값을 이용해야 하기 때문에 SalesAmount, OrderQuantity 열을 추가합니다.

결과를 확인해보면 보정 데이터가 아닌 경우는 SalesAmount 값을 가지고 있으며, SalesAmount.1의 값은 null입니다. 보정해야 할 데이터의 경우는 SalesAmount 값을 가지고 있으며, SalesAmount.1의 값도 가지고 있습니다.

이제 필요한 것은 SalesAmount와 SalesAmount.1의 값을 이용하여 SalesAmount.1이 null이면 SalesAmount를 이용하고, SalesAmount.1이 null 이 아니면 SalesAmount.1의 값을 이용하도록 조건절을 추가합니다.

결과를 확인해보면 제대로 나타나는 것을 확인할 수 있습니다.

 

 간략히 Power Query에서 조인 방법의 한글 어감이 이상하지만 Left Outer Join을 이용하고 조건절을 통해 원하는 값을 얻는 방법을 정리했습니다.