728x90
Lateral은 PostSql에만 있는 문법입니다.
join할 때 각 row 별로 for-each문처럼 join할 row를 고를 수 있습니다.
또한 lateral 안에서는 외부 스코프를 볼 수 있습니다.
즉, 외부에서 변수 개념으로 컬럼 값을 넘겨줄 수 있습니다.
select *
from tpd_prd prd
left join lateral (
select
SUM(tstc.real_stck_qty) as stck_qty
, SUM(tstc.temp_stck_qty) as temp_stck_qty
from ecomms.tpd_stock tstc
inner join ecomms.tpd_opt_value val
on prd.prd_no=tstc.prd_no and val.stock_no=tstc.stock_no and val.prd_no=tstc.prd_no and val.opt_item_no = 1
) stc on true
lateral 구문 안을 보면 prd 테이블 데이터를 파라미터로 사용하는 것을 볼 수 있습니다.
기본 구문은 left join lateral ( ... ) as 약칭 on true 입니다.
https://velog.io/@keum0821/SQL-LATERAL
SQL - LATERAL
최근에 PostgreSQL에서 제공하는 LATERAL에 대해 알게 되면서 이에 대해 정리해보기로 했다.PostgreSQL을 통해 LATERAL을 적용하는 예제 및 설명은 이 문서가 가장 좋았던 것 같다.지금까지는 MySQL만 써보
velog.io
728x90
'SQL' 카테고리의 다른 글
SQL - partition by 성능개선 (0) | 2021.10.07 |
---|---|
SQL - Array 정리 (0) | 2021.10.05 |
SQL - WITH RECURSIVE 문(재귀 쿼리) (0) | 2021.04.23 |
댓글