[sql] SQL HAVING 절을 사용하여 그룹화된 데이터 중 여러 개의 조건에서 가장 높은 값 조회하기
SQL에서 HAVING 절은 그룹화된 데이터에 조건을 적용하여 특정 조건을 만족하는 그룹만을 결과로 반환할 수 있습니다. 이에 대한 예시로, 여러 개의 조건 중에서 각 그룹의 최대값을 가진 행을 찾는 방법을 살펴보겠습니다.
예시
다음은 orders
테이블이라는 테이블에서 customer_id
에 따라 그룹화된 데이터에서 amount
와 quantity
의 최대값을 가진 행을 찾는 SQL 쿼리입니다.
SELECT customer_id, MAX(amount) AS max_amount, MAX(quantity) AS max_quantity
FROM orders
GROUP BY customer_id
HAVING MAX(amount) > 1000 AND MAX(quantity) > 5;
위 쿼리는 다음과 같은 작업을 수행합니다.
orders
테이블에서customer_id
에 따라 데이터를 그룹화합니다.- 각 그룹에서
amount
와quantity
의 최대값을 찾습니다. HAVING
절을 사용하여amount
가 1000보다 크고quantity
가 5보다 큰 그룹만을 결과로 반환합니다.
이 쿼리를 실행하면 조건을 모두 만족하는 그룹의 customer_id
, max_amount
, max_quantity
가 반환됩니다.
이러한 방식으로 SQL의 HAVING 절을 사용하여 여러 개의 조건에서 그룹화된 데이터의 최대값을 조회할 수 있습니다.
참조: SQL HAVING 절