데이터 분석/SQL

[day8] 특정 열값이 MAX인 행을 그룹핑하기

경 민 2025. 2. 24. 20:49

Q. 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회


1단계 : 원하는 데이터 선택
SELECT FOOD_TYPE,
        REST_ID,
        REST_NAME,
        FAVORITES
FROM REST_INFO T1
2단계 : 조건 설정

조건 : FAVORITES 값이 MAX 

 3단계 :  조건을 주기 위해 필요한 값을 포함한 새로운 테이블을 생성
SELECT FOOD_TYPE,
        REST_ID,
        REST_NAME,
        FAVORITES
FROM REST_INFO T1
WHERE T1.FAVORITES =
(
SELECT MAX(T2.FAVORITES)
FROM REST_INFO T2
WHERE T1.FOOD_TYPE = T2.FOOD_TYPE
)
GROUP BY 1
ORDER BY 1 DESC

 

⭐ 비교할 테이블 2개 간의 조건도 설정해줘야 한다.

WHERE T1.FOOD_TYPE = T2.FOOD_TYPE

"그룹핑 되어있는 FOOD_TYPE 이 서로 같은 애들끼리만 [ FAVORITES 값이 MAX ] 인지 확인해"