09009

[프로그래머스 lv3 SQL] 즐겨찾기가 가장 많은 식당 정보 출력하기 본문

Algorithm/SQL
[프로그래머스 lv3 SQL] 즐겨찾기가 가장 많은 식당 정보 출력하기
09009

문제 보기

https://school.programmers.co.kr/learn/courses/30/lessons/131123?language=oracle 

 

프로그래머스

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

programmers.co.kr

 

 

문제 해결

서브쿼리에서는 ORDER BY를 사용할 수 없다.

ORDER BY절은 SELECT 절에서 한 개만 올 수 있으므로 ORDER BY 절은 메인 쿼리의 마지막 문장에 위치해야 한다. 

출처: https://106hht.tistory.com/41

 

[SQLD] #024 SQL 활용 - 서브 쿼리

목차 0. 서브쿼리란? 1. 단일 행 서브쿼리 2. 다중 행 서브쿼리 3. 다중 칼럼 서브쿼리 4. 연관 서브쿼리 5. 그 밖의 위치에서 사용하는 서브쿼리 6. 뷰 0. 서브쿼리란? 서브쿼리(Subquery) : 하나의 SQL문

106hht.tistory.com

처음에 위와 같이 코드를 작성하여 에러가 발생하였다.

분명 올바른 코드라고 생각했지만 서브쿼리의 주의사항을 간과했다는 사실을 인지하지 못했다.

 

 

 

소스 코드

SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
WHERE (FOOD_TYPE, FAVORITES) IN (
     SELECT FOOD_TYPE, MAX(FAVORITES)
     FROM REST_INFO
     GROUP BY FOOD_TYPE
    )
ORDER BY FOOD_TYPE DESC;