스칼라 하위 쿼리 - Amazon Redshift

스칼라 하위 쿼리

스칼라 하위 쿼리는 정확히 1개의 값, 즉 열 1개가 포함된 행 1개를 반환하는 정규 SELECT 쿼리이며, 괄호로 묶입니다. 쿼리를 실행하여 반환되는 값은 바깥쪽 쿼리에 사용됩니다. 하위 쿼리가 행을 0개 반환하는 경우 하위 쿼리 표현식의 값은 NULL입니다. 행을 2개 이상 반환하면 Amazon Redshift가 오류를 반환합니다. 하위 쿼리는 상위 쿼리의 변수를 참조할 수 있으며, 하위 쿼리를 한 번 호출할 때마다 상수 역할을 합니다.

스칼라 하위 쿼리는 표현식이 필요한 대부분 문에서 사용됩니다. 하지만 다음과 같은 경우에는 유효한 표현식이 아닙니다.

  • 표현식의 기본값으로 사용되는 경우

  • GROUP BY 및 HAVING 절에서 사용되는 경우

다음은 2008년 한 해 판매 한 건당 지불된 평균 가격을 계산하는 하위 쿼리입니다. 그러면 바깥쪽 쿼리가 출력 값을 사용하여 분기별로 판매 한 건당 평균 가격과 비교합니다.

select qtr, avg(pricepaid) as avg_saleprice_per_qtr, (select avg(pricepaid) from sales join date on sales.dateid=date.dateid where year = 2008) as avg_saleprice_yearly from sales join date on sales.dateid=date.dateid where year = 2008 group by qtr order by qtr; qtr | avg_saleprice_per_qtr | avg_saleprice_yearly -------+-----------------------+---------------------- 1 | 647.64 | 642.28 2 | 646.86 | 642.28 3 | 636.79 | 642.28 4 | 638.26 | 642.28 (4 rows)