[프로그래머스 Lv. 3] 즐겨찾기가 가장 많은 식당 정보 출력하기

너구리로소이다·2023년 3월 14일
0

programmers-SQL

목록 보기
5/76

코딩테스트 연습 - 즐겨찾기가 가장 많은 식당 정보 출력하기

문제 설명

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

Column nameTypeNullable
REST_IDVARCHAR(5)FALSE
REST_NAMEVARCHAR(50)FALSE
FOOD_TYPEVARCHAR(20)TRUE
VIEWSNUMBERTRUE
FAVORITESNUMBERTRUE
PARKING_LOTVARCHAR(1)TRUE
ADDRESSVARCHAR(100)TRUE
TELVARCHAR(100)TRUE

문제

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

예시

REST_INFO 테이블이 다음과 같을 때,

REST_IDREST_NAMEFOOD_TYPEVIEWSFAVORITESPARKING_LOTADDRESSTEL
00001은돼지식당한식1150345734N서울특별시 중구 다산로 149010-4484-8751
00002하이가쯔네일식120034112N서울시 중구 신당동 375-21NULL
00003따띠따띠뜨양식1234023102N서울시 강남구 신사동 627-3 1F02-6397-1023
00004스시사카우스일식1522074230N서울시 서울시 강남구 신사동 627-27010-9394-2554
00005코슌스일식15301123N서울특별시 강남구 언주로153길010-1315-8729

SQL을 실행하면 다음과 같이 출력되어야 합니다.

FOOD_TYPEREST_IDREST_NAMEFAVORITES
한식00001은돼지식당734
일식00004스시사카우스230
양식00003따띠따띠뜨102

풀이

SELECT RI.FOOD_TYPE, RI.REST_ID, RI.REST_NAME, RI.FAVORITES
FROM REST_INFO RI
INNER JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE) TBL
ON RI.FOOD_TYPE = TBL.FOOD_TYPE
AND RI.FAVORITES = TBL.FAVORITES
ORDER BY RI.FOOD_TYPE DESC

해당 음식 종류에 대한 즐겨찾기 수의 최대값을 조회하는 것을 먼저 진행한다.
동일한 테이블에 해당 지정한 음식종류와 즐겨찾기 수를 조건으로 원하는 정보를 찾는다.
마지막으로, 음식 종류를 기준으로 내림차순 정렬한다.

profile
일단 해보자 뭐든 되겠지 😄

0개의 댓글