프로그래머스

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

peach_h 2023. 4. 6. 12:15

https://school.programmers.co.kr/learn/courses/30/lessons/131123

 

프로그래머스

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

programmers.co.kr

 

처음에 내가 짠 코드

 

1. GROUP BY 사용해서 음식 종류별로 묶기

2. 음식 종류를 기준으로 내림차순 정렬

-> 별점이 가장 높은걸 뽑아야하는데 . . 한번에 수행 불가 서브쿼리를 무조건 사용했어야했음 !!

근데 결과에 진짜 별점 높은 애들이 많이 뽑혀서 맞게 푼줄 알았다 ㅎ

 

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

 

 

👇🏻 서브쿼리 관련 글

https://peach-hzz.tistory.com/47

 

서브 쿼리

서브 쿼리 < 메인 쿼리 > SELECT MAX(LIST_PRICE) FROM PRODUCTS; PRODUCT에서 LIST_PRICE가 최대인 값 SELECT PRODUCT_ID, PRODUCT_NAME, LIST_PRICE FROM PRODUCTS WHERE LIST_PRICE = 8867.99 ; LIST_PRICE가 8867.99인 행의 PRODUCT_ID, PRODUCT_NAME,

peach-hzz.tistory.com

 

 

 

정답코드

 

1. 서브쿼리로 음식 종류별로 가장 별점이 높은 별점을 뽑는다

2. 1로 뽑은 별점에 해당하는 행들을 WHERE문으로 찾음

3. GROUP BY로 음식 종류 별로 묶기

4. ORDER BY로 음식 종류 별로 내림차순 정렬

 

-- 코드를 입력하세요
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