correlated subquery

외부 행의 값을 내부 조건에 넣어 한 행씩 판정한다

상관 서브쿼리는 외부 쿼리의 현재 행을 기준으로 내부 쿼리 조건이 달라지는 구조입니다.
외부 쿼리 현재 행
현재 행 값을 참조하는 내부 조건
현재 행을 남길지 판단
1 외부 행 선택
products p에서 현재 상품과 category를 읽습니다.
2 내부 조건 주입
p2.category = p.category로 같은 카테고리 최고가를 구합니다.
3 현재 행 판정
현재 price가 내부 결과와 같으면 남기고 낮으면 제외합니다.
외부 행
내부 조건 결과
판정
노트북, 전자
전자 최고가
같으면 선택
키보드, 전자
전자 최고가
낮으면 제외
소설, 도서
도서 최고가
같으면 선택
읽는 법
외부 별칭을 내부 쿼리가 참조하면 상관 서브쿼리입니다.
주의
행이 많으면 논리적으로 내부 평가가 반복됩니다.
대안
JOIN, 집계 테이블, 윈도우 함수로 바꿀 수 있는지 봅니다.