[sql] SQL HAVING 절을 사용하여 그룹화된 데이터 중 최댓값 조회하기

많은 경우 SQL 질의에서 그룹화된 데이터 중 최댓값을 조회해야 합니다. 이를 수행하려면 MAX() 함수와 함께 GROUP BY 절을 사용하여 데이터를 그룹화하고, 그룹의 최댓값을 필터링하기 위해 HAVING 절을 추가해야 합니다.

아래에 간단한 예제를 통해 이를 시연하겠습니다.

예제

다음은 Sales 테이블의 데이터 예제입니다. 이 테이블에는 RegionAmount라는 두 개의 열이 있습니다.

Region Amount
East 100
West 150
East 200
West 250

그룹화된 데이터 중에서 Amount 열의 최댓값을 조회하는 SQL 질의는 다음과 같이 작성할 수 있습니다.

SELECT Region, MAX(Amount) AS MaxAmount
FROM Sales
GROUP BY Region
HAVING MAX(Amount) > 150;

위의 SQL 질의는 Sales 테이블에서 Region으로 그룹화하고, 각 그룹 내에서 Amount의 최댓값을 찾은 후, 해당 값이 150보다 큰 그룹만을 출력합니다.

이제 HAVING 절을 사용하여 그룹화된 데이터 중에서 최댓값을 조건에 따라 조회할 수 있는 방법을 이해했습니다.

참고 자료