clamp
Clamp
clamp
글쓰기 관리
전체 방문자
오늘
어제
  • 분류 전체보기 (509)
    • IOS (85)
    • SwiftUI+TCA+Combine (9)
    • RxSwift + MVVM (56)
    • Clean Architecture (12)
    • SWIFT (56)
    • iOS - TDD (2)
    • 디자인패턴 (4)
    • CS (56)
      • 알고리즘 (29)
      • 운영체제 (15)
      • 자료구조 (2)
      • 네트워킹 (4)
      • 기타 (6)
    • 회고 (0)
    • Firebase (18)
    • SwiftUI (10)
    • iOS - UIKit (11)
    • iOS - 오픈소스 (6)
    • 코딩테스트 (166)
      • 프로그래머스 (164)
    • 정보처리기사 (14)
    • GitHub (2)
글쓰기 / 관리자

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅅ
  • Swift
  • uikit
  • Q

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
clamp

Clamp

코딩테스트/프로그래머스

[MYSQL] 그룹별 조건에 맞는 식당 목록 출력하기(IN, JOIN, DATE_FORMAT)

2022. 10. 13. 13:55

 REST_INFO테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. 

 

MEMBER_PROFILE 테이블은 다음과 같으며 

MEMBER_ID, 회원 ID

MEMBER_NAME,  회원 이름

TLNO,  회원 연락처

GENDER,  성별,

DATE_OF_BIRTH 생년월일

 

 

REST_REVIEW 테이블은 다음과 같으며 

REVIEW_ID, 리뷰 ID

REST_ID, 식당 ID

MEMBER_ID, 회원 ID

REVIEW_SCORE, 점수

REVIEW_TEXT, 리뷰 텍스트

REVIEW_DATE, 리뷰 작성일

 

MEMBER_PROFILE와 REST_REVIEW테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요.

회원이름, 리뷰텍스트, 리뷰작성일이 출력되도록 작성해주시고, 결과는 리뷰작성일을 기준으로 오름차순 정렬해주세요.

SELECT B.MEMBER_NAME, C.REVIEW_TEXT, DATE_FORMAT(C.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM MEMBER_PROFILE B
INNER JOIN REST_REVIEW C
ON B.MEMBER_ID = C.MEMBER_ID
WHERE C.MEMBER_ID IN(---------------------------------
	SELECT MEMBER_ID
    FROM REST_REVIEW						최대 리뷰 횟수의 작성자 ID를 구함
    GROUP BY MEMBER_ID
    HAVING COUNT(MEMBER_ID) = (            ----
    	SELECT COUNT(MEMBER_ID) CNT
        FROM REST_REVIEW		최대 리뷰 횟수를 구함
        GROUP BY MEMBER_ID) A
        )                             	   ----
	)------------------------------------------------
ORDER BY REVIEW_DATE

* inner join

조인하는 테이블의 ON절의 조건이 일치하는 결과만 출력. join조건에서 동일한 값이 있는 행만을 반환한다.

A와 B의 교집합(서로 중복되는 값)을 보여준다,

SELECT A.xxx, B.yyy
FROM TABLE A INNER JOIN TABLE B 
ON A.key = B.key
WHERE A.key = '111'

함축구문

SELECT A.xxx, B.yyy
FROM TABLE A, TABLE B
WHERE A.key = B.key and A.key = '111'

from절에 콤마만 쓰면 inner join으로 치부된다.


DATE_FROMAT

DATE_FORMAT(날짜, 형식): 날짜를 지정한 형식으로 출력

SQL

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS DATE
FROM DUAL
저작자표시 비영리 동일조건 (새창열림)
    '코딩테스트/프로그래머스' 카테고리의 다른 글
    • [MYSQL] JOIN
    • [MYSQL] 없어진 기록 찾기(LEFT JOIN)
    • [MYSQL] NULL처리하기(IFNULL)
    • [MYSQL] 이름이 있는 동물의 아이디(IS NOT NULL)
    clamp
    clamp
    주니어 iOS개발자의 발악!!!!!!!

    티스토리툴바