문제풀이/PROGRAMMERSSCHOOL

GROUP BY - 즐겨찾기가 가장 많은 식당 정보 출력하기

제밍 2022. 11. 9. 14:59

*문제

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

 

 

*풀이 

1. 음식 종류 별로 가장 즐겨찾기가 많은 경우부터 도출해보게따,,

1-1) 음식종류와 가장 즐겨찾기가 많은 경우를 조회 -- SELECT

1-2) REST_INFO TABLE에서 -- FROM

1-3) 음식 종류 별로 묶어주기 -- GROUP BY

 

SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES 
FROM REST_INFO
GROUP BY FOOD_TYPE ;

 

SQL문이 이렇게 나온다!! -- > 이 테이블을 A로 칭하고 REST_INFO TABLE은 B로 칭하겠음

 

이를 바탕으로

 

2. 최종 정답 도출시키기 

2-1)  A.음식종류, B.ID , B.식당이름, A.즐겨찾기수 조회하기 --SELECT

2-2)  A와 B를 FOOD_TYPE과 FAVORITES를 기준으로 JOIN 시켜주기 -- FROM

2-3)  음식종류를 기준으로 내림차순 하기 -- ORDER BY

 

 

*정답*

SELECT A.FOOD_TYPE, B.REST_ID, B.REST_NAME, A.FAVORITES
FROM (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES FROM REST_INFO
     GROUP BY FOOD_TYPE) A JOIN REST_INFO B 
     ON A.FOOD_TYPE = B.FOOD_TYPE AND A.FAVORITES = B.FAVORITES
     ORDER BY A.FOOD_TYPE DESC;

 

 

 

코딩테스트 연습 - 즐겨찾기가 가장 많은 식당 정보 출력하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr