블로그

프로그래머스 LEVEL4

게시 2분

서울에 위치한 식당 목록 출력하기 - SELECT

코딩테스트 연습 - 서울에 위치한 식당 목록 출력하기

SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE FROM REST_INFO I JOIN REST_REVIEW R ON I.REST_ID = R.REST_ID GROUP BY I.REST_ID HAVING I.ADDRESS LIKE '서울%' ORDER BY SCORE DESC, I.FAVORITES DESC

SELECT 분류에 있지만 ORDER BY, GROUP BY HAVING, JOIN ON 등 그냥 다 나온다.

부분 살피기:

AVG(행): 행의 평균
ROUND(숫자, 자릿수): 반올림된후 자릿수까지 반환
LIKE '서울%': 맨 앞에 '서울' 이라는 글자가 포함된 열만 반환

전체 살피기:

JOIN REST_REVIEW R ON I.REST_ID = R.REST_ID
다음 join 명령을 통해 I의 REST_ID와 같은 R.REST_ID의 모든 열들 이 합쳐진다.
JOIN ON 만 했을 때의 결과를 이해하기 좋은 예시이다.

위부터 1번표라고 하자.
1번표와 2번표를
JOIN 2번표 ON 1. empID = 2.empID 한 결과가 3번표이다.
보면, 2번표의 empId 값이 1인 열이 여러개일때, 3번표에서 1번표의 empId가 여러개 생긴다.

때문에 JOIN된 표에서 GROUP BY하고 AVG(칼럼명) 해주면 각 empId마다의 평균이 출력된다.
(GROUP BY를 잘 모른다면 설명을 봐도 이해 안될듯하다 )

마지막에는 ORDER BY해서 주어진 상황에 맞게 정렬해주면 된다.

댓글

댓글을 남기면 닉네임(또는 GitHub 계정 정보)이 저장됩니다. 개인정보처리방침

GitHub