본문 바로가기
데이터베이스/MYSQL

[MYSQL] 즐겨찾기가 가장 많은 식당 정보 출력하기

by 썬키 2023. 1. 4.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

링크를 클릭하면 해당 문제로 이동합니다.

 

출처 - 프로그래머스

 

1. 단계별로 접근하기

1) 음식종류(FOOD_TYPE)별로 즐겨찾기수가 가장 높은 데이터 출력

SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE;
FOOD_TYPE(음식종류) FAVORITES(즐겨찾기수)
한식 n
분식 n
일식 n
양식 n
중식 n

 

 

2) 그 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수 출력 (정렬기준 : 음식 종류 내림차순)

SELECT R.FOOD_TYPE, R.REST_ID, R.REST_NAME, R.FAVORITES
FROM REST_INFO R, (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES
                    FROM REST_INFO
                    GROUP BY FOOD_TYPE
                    ORDER BY FAVORITES DESC) B
WHERE R.FOOD_TYPE = B.FOOD_TYPE AND B.FAVORITES = R.FAVORITES
ORDER BY B.FOOD_TYPE DESC;
FOOD_TYPE(음식종류) REST_ID(식당ID) REST_NAME(식당이름) FAVORITES(즐겨찾기수)
한식 00001 식당1 n
중식 00005 식당5 n
일식 00003 식당3 n
양식 00004 식당4 n
분식 00002 식당2 n

 

2. 풀이

2단계의 FROM절에 1단계에 정의해놓은 테이블을 사용하여 'B' 라는 Alias를 붙여주고 B 테이블과 REST_INFO 테이블을 조인하여 결과를 출력하는 방식으로 풀어보았다.

댓글