HAVING 절 - AWS Clean Rooms

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

HAVING 절

HAVING 절은 쿼리가 반환하는 중간 그룹화된 결과 세트에 조건을 적용합니다.

구문

[ HAVING condition ]

예를 들어 SUM 함수의 결과를 제한할 수 있습니다.

having sum(pricepaid) >10000

HAVING 조건은 모든 WHERE 절 조건이 적용되고 GROUP BY 작업이 완료된 후 적용됩니다.

조건 자체는 모든 WHERE 절 조건과 동일한 형식을 취합니다.

사용 노트

  • HAVING 절 조건에서 참조되는 모든 열은 그룹화 열 또는 집계 함수의 결과를 참조하는 열이어야 합니다.

  • HAVING 절에서는 다음을 지정할 수 없습니다.

    • 선택 목록 항목을 참조하는 서수. GROUP BY 및 ORDER BY 절만 서수 번호를 허용합니다.

예시

다음 쿼리는 이름을 기준으로 모든 이벤트에 대한 총 티켓 판매액을 계산한 다음, 총 판매액이 $800,000 미만인 이벤트를 제거합니다. HAVING 조건은 선택 목록의 집계 함수 결과에 적용됩니다sum(pricepaid).

select eventname, sum(pricepaid) from sales join event on sales.eventid = event.eventid group by 1 having sum(pricepaid) > 800000 order by 2 desc, 1; eventname | sum ------------------+----------- Mamma Mia! | 1135454.00 Spring Awakening | 972855.00 The Country Girl | 910563.00 Macbeth | 862580.00 Jersey Boys | 811877.00 Legally Blonde | 804583.00 (6 rows)

다음 쿼리는 비슷한 결과 집합을 계산합니다. 그러나이 경우 선택 목록에 지정되지 않은 집계에 HAVING 조건이 적용됩니다sum(qtysold). 티켓이 2,000장보다 많이 팔리지 않은 이벤트가 최종 결과에서 제거됩니다.

select eventname, sum(pricepaid) from sales join event on sales.eventid = event.eventid group by 1 having sum(qtysold) >2000 order by 2 desc, 1; eventname | sum ------------------+----------- Mamma Mia! | 1135454.00 Spring Awakening | 972855.00 The Country Girl | 910563.00 Macbeth | 862580.00 Jersey Boys | 811877.00 Legally Blonde | 804583.00 Chicago | 790993.00 Spamalot | 714307.00 (8 rows)