[프로그래머스] SQL 고득점 kit(즐겨찾기가 가장 많은 식당 정보 출력하기)

728x90

1. 즐겨찾기가 가장 많은 식당 정보 출력하기


문제 설명


다음은 식당의 정보를 담은 REST_INFO 테이블입니다. REST_INFO 테이블은 다음과 같으며 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다.

 

문제


REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.

 

내 풀이(오답)

-- 코드를 입력하세요
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE
HAVING MAX(FAVORITES)
ORDER BY FOOD_TYPE DESC;

 

풀이

SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
WHERE FAVORITES IN (SELECT MAX(FAVORITES) 
                                 FROM REST_INFO
                                GROUP BY FOOD_TYPE)
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC;
  1. 서브 쿼리를 사용하여 각 음식 유형별로 최대 즐겨찾기 수를 찾는다.
  2. 메인 쿼리에서는 서브 쿼리의 결과를 사용하여 각 음식 유형별로 최대 즐겨찾기 수와 일치하는 행만 선택한다.

 

 
 
 
 

 

서브쿼리 정리

https://jyeong0814.tistory.com/99

 

SQL 서브쿼리 정리(중첩 서브쿼리, 인라인 뷰, 스칼라 서브쿼리)

강의: 유튜브 SQL전문가 정미나 https://www.youtube.com/watch?v=oc-ya1MpK5c 서브 쿼리 하나의 SQL문안에 포함되어 있는 또 다른 SQL문, 알려지지 않은 기준을 이용한 검색에 사용 서브쿼리를 괄호로 감싸서

jyeong0814.tistory.com

 

728x90