ApparelSales라는 의류 판매 테이블에서 마지막 날짜의 Slacks의 판매량을 조회하고 싶다면 어떻게 해야할까?
DB SQL의 경우는 아래와 같이 조회할 수 있다.
SELECT SUM(Slacks)
FROM ApparelSales
WHERE 1=1
AND Datekey IN (SELECT MAX(Datekey) FROM ApparelSales)
SELECT SUM(Slacks)
FROM ApparelSales
WHERE 1=1
AND Datekey = (SELECT MAX(Datekey) FROM ApparelSales)
Power BI에서 이런 WHERE Condition을 어떻게 줄 수 있을까?
아래와 같이 CALCULATE와 FILTER를 사용하면 된다.
최근 합계 = CALCULATE(SUM(ApparelSales[Slacks]), FILTER(ApparelSales, MAX(ApparelSales[Datekey])))
설명 :
CALCULATE의 expression에 WHERE절을 제외한 SQL을 넣고, 그 뒤 filter에 WHERE 조건들을 넣으면 된다.
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
FILTER는 아래와 같이 테이블에 조건을 걸어준다.
FILTER(<table>,<filter>)
즉... SQL에서는 서브쿼리에 원하는 값을 조회시키고, 그 값을 WHERE절에 조건을 걸어 조회를 했는데, Power BI에서는 FILTER에 원하는 조건만 담긴 테이블을 생성하고, CALCULATE를 통해 그 테이블 내에서 수식을 수행한다. 즉... SQL의 WITH AS와 비슷한 방식이라 볼 수 있다.
'개발자 > Big Data' 카테고리의 다른 글
Power BI 이번달 첫 날, 마지막 날... (0) | 2021.01.11 |
---|---|
Power BI DAX 결과 값에 (,) 콤마 넣기 / 백분율(%) 넣기 (0) | 2021.01.07 |
Power BI 서로 다른 테이블 연결하기 (0) | 2020.12.24 |
Power BI M formula (파워 BI M 수식 - 코딩을 해보자...) (0) | 2020.12.23 |
Power BI 연습 (투마일스 - 온라인 쇼핑몰 영업현황) (0) | 2020.12.11 |