달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sql 문제풀이
  • select
  • java
  • 혼공MySQL
  • 프로그래머스
  • 백준문제풀이
  • SQL고득점Kit
  • math
  • 백준알고리즘
  • BOJ algorithm
  • Bronze III
  • Scanner
  • java algorithm
  • 자바
  • 알고리즘풀이
  • react
  • Bronze V
  • Bronze IV
  • BRONZE
  • HTML
  • programmers
  • BOJ
  • MySQL
  • 혼공SQL
  • 혼자공부하는SQL
  • 알고리즘
  • SQL
  • 문제풀이
  • Algorithm
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[프로그래머스] 서울에 위치한 식당 목록 출력하기 - 131118 [MYSQL]
algorithm/프로그래머스

[프로그래머스] 서울에 위치한 식당 목록 출력하기 - 131118 [MYSQL]

2023. 1. 9. 22:22

[level 4] 서울에 위치한 식당 목록 출력하기 - 131118

문제 링크

성능 요약

메모리: 0.0 MB, 시간: 0.00 ms

구분

코딩테스트 연습 > SELECT

채점결과

Empty

문제 설명

다음은 식당의 정보를 담은 REST_INFO 테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. REST_INFO 테이블은 다음과 같으며 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다.

Column nameTypeNullable
REST_ID VARCHAR(5) FALSE
REST_NAME VARCHAR(50) FALSE
FOOD_TYPE VARCHAR(20) TRUE
VIEWS NUMBER TRUE
FAVORITES NUMBER TRUE
PARKING_LOT VARCHAR(1) TRUE
ADDRESS VARCHAR(100) TRUE
TEL VARCHAR(100) TRUE

REST_REVIEW 테이블은 다음과 같으며 REVIEW_ID, REST_ID, MEMBER_ID, REVIEW_SCORE, REVIEW_TEXT,REVIEW_DATE는 각각 리뷰 ID, 식당 ID, 회원 ID, 점수, 리뷰 텍스트, 리뷰 작성일을 의미합니다.

Column nameTypeNullable
REVIEW_ID VARCHAR(10) FALSE
REST_ID VARCHAR(10) TRUE
MEMBER_ID VARCHAR(100) TRUE
REVIEW_SCORE NUMBER TRUE
REVIEW_TEXT VARCHAR(1000) TRUE
REVIEW_DATE DATE TRUE

문제

REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.


예시

REST_INFO 테이블이 다음과 같고

REST_IDREST_NAMEFOOD_TYPEVIEWSFAVORITESPARKING_LOTADDRESSTEL
00028 대우부대찌개 한식 52310 10 N 경기도 용인시 처인구 남사읍 처인성로 309 031-235-1235
00039 광주식당 한식 23001 20 N 경기도 부천시 산업로8번길 60 031-235-6423
00035 삼촌식당 일식 532123 80 N 서울특별시 강서구 가로공원로76가길 02-135-1266

REST_REVIEW 테이블이 다음과 같을 때

REVIEW_IDREST_IDMEMBER_IDREVIEW_SCOREREVIEW_TEXTREVIEW_DATE
R000000065 00028 soobin97@naver.com 5 부찌 국물에서 샤브샤브 맛이나고 깔끔 2022-04-12
R000000066 00039 yelin1130@gmail.com 5 김치찌개 최곱니다. 2022-02-12
R000000067 00028 yelin1130@gmail.com 5 햄이 많아서 좋아요 2022-02-22
R000000068 00035 ksyi0316@gmail.com 5 숙성회가 끝내줍니다. 2022-02-15
R000000069 00035 yoonsy95@naver.com 4 비린내가 전혀없어요. 2022-04-16

SQL을 실행하면 다음과 같이 출력되어야 합니다.

REST_IDREST_NAMEFOOD_TYPEFAVORITESADDRESSSCORE
00035 삼촌식당 일식 80 서울특별시 강서구 가로공원로76가길 4.50

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

답 : REST_REVIEW를 기준으로 JOIN을 하니, REST_REVIEW를 A로 하고 필요한 필드 가져왔다.

Join 기준 테이블은 REST_REVIEW이고, 별칭은 A다. REST_INFO 별칭은 B, ON으로 REST_ID
같은 ID를 결합하고 A. REST_ID로 그룹화한뒤 HAVING을 통해 그룹화한 곳의 원하는 조건인 '서울'을 가져온다.
SCORE와 FAVORITES를 내림차순으로 정렬한다. 

SELECT A.REST_ID, B.REST_NAME, B.FOOD_TYPE, B.FAVORITES, B.ADDRESS, ROUND(AVG(A.REVIEW_SCORE),2) AS SCORE
FROM REST_REVIEW A
JOIN REST_INFO B ON A.REST_ID = B.REST_ID
GROUP BY A.REST_ID
HAVING B.ADDRESS LIKE '서울%'
ORDER BY SCORE DESC, B.FAVORITES DESC;
저작자표시 비영리 변경금지 (새창열림)

'algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 12세 이하인 여자 환자 목록 출력하기 - 132201 [MYSQL]  (0) 2023.01.25
[프로그래머스] 평균 일일 대여 요금 구하기 - 151136 [MYSQL]  (1) 2023.01.25
[프로그래머스] 과일로 만든 아이스크림 고르기 - 133025 [MYSQL]  (0) 2023.01.08
[프로그래머스] 인기있는 아이스크림 - 133024 [MYSQL]  (0) 2023.01.08
[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 - 131120 [MYSQL]  (0) 2023.01.07
    'algorithm/프로그래머스' 카테고리의 다른 글
    • [프로그래머스] 12세 이하인 여자 환자 목록 출력하기 - 132201 [MYSQL]
    • [프로그래머스] 평균 일일 대여 요금 구하기 - 151136 [MYSQL]
    • [프로그래머스] 과일로 만든 아이스크림 고르기 - 133025 [MYSQL]
    • [프로그래머스] 인기있는 아이스크림 - 133024 [MYSQL]
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바