https://school.programmers.co.kr/learn/courses/30/lessons/131123
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 풀이
- 서브 쿼리로 음식 종류별로 그룹핑하여 MAX 키워드로 즐겨찾기수가 가장 많은 식당을 조회하여 REST_INFO 테이블과 자체 조인한다. 이때 조인 조건은 음식 종류와 즐겨찾기수가 같음으로 한다.
- 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회한다.
- 음식 종류를 기준으로 내림차순 정렬한다.
SELECT
A.FOOD_TYPE,
A.REST_ID,
A.REST_NAME,
A.FAVORITES
FROM
REST_INFO AS A
JOIN
(
SELECT FOOD_TYPE, MAX(FAVORITES) AS BEST
FROM REST_INFO
GROUP BY FOOD_TYPE
) AS B
ON A.FOOD_TYPE = B.FOOD_TYPE AND A.FAVORITES = B.BEST
ORDER BY
1 DESC
조인 대신 튜플 비교를 사용한 쿼리를 작성할 수도 있다.
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM
REST_INFO
WHERE
(FOOD_TYPE, FAVORITES) IN (
SELECT FOOD_TYPE, MAX(FAVORITES) AS BEST
FROM REST_INFO
GROUP BY FOOD_TYPE
)
ORDER BY
1 DESC'SQL > GROUP BY' 카테고리의 다른 글
| [프로그래머스 SQL] Lv.3 - 부서별 평균 연봉 조회하기 (0) | 2025.03.28 |
|---|---|
| [프로그래머스 SQL] Lv.3 - 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2025.03.27 |
| [프로그래머스 SQL] Lv.3 - 카테고리 별 도서 판매량 집계하기 (0) | 2025.03.26 |
| [프로그래머스 SQL] Lv.3 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2025.03.26 |
| [프로그래머스 SQL] Lv.2 - 월별 잡은 물고기 수 구하기 (0) | 2025.03.25 |