프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
- 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회
- 회원 테이블과 리뷰 테이블 존재
코드
SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM MEMBER_PROFILE M
JOIN REST_REVIEW R ON M.MEMBER_ID = R.MEMBER_ID
WHERE M.MEMBER_ID = (SELECT MEMBER_ID FROM REST_REVIEW GROUP BY MEMBER_ID HAVING (COUNT(MEMBER_ID) = MAX(COUNT(MEMBER_ID))))
ORDER BY REVIEW_DATE, REVIEW_TEXT;
코드 설명
- LINE 1) 출력 형식에 맞게 원하는 정보 출력
- LINE 2~3) 회원 테이블과 리뷰 테이블 JOIN : JOIN KEY는 회원 아이디
- LINE 4) 서브쿼리를 이용해 가장 리뷰를 많이 작성한 회원 선택
- GROUP BY로 리뷰 테이블에서 회원 아이디로 그룹을 묶고
- HAVING절로 조건 설정 : 회원 아이디별로 리뷰 테이블에 존재하는 회원 아이디의 수 (즉, 작성한 리뷰의 수)를 셌을 때 가장 많은 수를 가진 회원의 아이디 선택 - HAVING (COUNT(MEMBER_ID) = MAX(COUNT(MEMBER_ID))
- 문제의 조건에 맞게 리뷰 날짜를 기준으로 오름차순 정렬, 리뷰 날짜가 같다면 리뷰 텍스트를 기준으로 오름차순 정렬
'SQL' 카테고리의 다른 글
[SQL] NULL 값 변환하기 - IFNULL, COALESCE (1) | 2025.01.28 |
---|---|
[SQL] DATE TYPE 다루기 - 특정 일자 조회하기 DATE_FORMAT, YEAR(), MONTH(), (0) | 2025.01.28 |
[프로그래머스 SQL KIT] JOIN #5 - FrontEnd 개발자 찾기 : bit 연산 (1) | 2025.01.28 |
[프로그래머스 SQL KIT] JOIN #4 - 있었는데요 없었습니다 : 날짜 비교 연산 (0) | 2025.01.25 |
[프로그래머스 SQL KIT] JOIN #3 - 없어진 기록 찾기 (0) | 2025.01.25 |