일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 자바
- Java
- sql
- 대전카페추천
- 아쿠아필후기
- 자바스크립트
- 임시비밀번호
- 내돈내산
- 파주데이트
- 맛집추천
- 부평갈만한곳
- javascript
- 가성비호텔
- 인천갈만한곳
- 소제동
- 파주갈만한곳
- 맛집
- 여자혼자여행
- smtp
- 혼밥
- 아쿠아플라넷여수
- 프로그래머스
- naversmtp
- 영흥도여행
- 경희대맛집
- 토요코인인천부평
- 홍대데이트
- 피치항공후기
- 핫플
- 인천데이트
- Today
- Total
맵크나이트의 마라탐방
[Level 4]그룹별 조건에 맞는 식당 목록 출력하기 -실무에 도움될 거 같아서 정리 본문
https://school.programmers.co.kr/learn/courses/30/lessons/131124
with rv_cnt as (
SELECT m.MEMBER_ID, count(m.MEMBER_ID) as 1_re_cnt
from MEMBER_PROFILE m
left join REST_REVIEW r
on m.MEMBER_ID = r.MEMBER_ID
group by 1
), 1st_cnt as(
select MEMBER_ID
from rv_cnt
where 1_re_cnt = (select max(1_re_cnt) from rv_cnt)
)
select m.MEMBER_NAME, r.REVIEW_TEXT,date_format(r.REVIEW_DATE,'%Y-%m-%d') as REVIEW_DATE
from MEMBER_PROFILE m
left join REST_REVIEW r
on r.MEMBER_ID = m.MEMBER_ID
inner join 1st_cnt
on r.MEMBER_ID = 1st_cnt.MEMBER_ID
order by REVIEW_DATE, REVIEW_TEXT
일단 답안
MEMBER_PROFILE
REST_REVIEW
각각 select * 로 했을 때 가져온 데이터,
먼저 re_cnt 테이블을 만들어서 MEMBER_PROFILE 테이블과 REST_REVIEW테이블을 조인후
멤버아이디, 카운트를 셈,
1st_cnt 테이블을 만들어서 re_cnt의 max값이었던 아이디를 구한다
이때 내가 기초적인 부분에서 헤멧던 부분,
보면 알 수 있듯이 카운트로 셋을 때 3이 가장 많았고, 아이디가 3건이 있음
max로 구해보니 3만 덜렁...
그럼 max를 where 절에다가 넣어야한다는 소리인데..
그럼 멤버아이디를 select절에 넣고
where절에 max를 하면 되겠군..?
내 목적은 cnt가 3인 아이디 3개를 추리는 것이었는데 어째서인지 re_cnt에 있는 아이디 전부가 나오고말았다
그럼 내 문제는 뭘까
where 조건을 조회해봤을때, 3이 나온다
where 조건에 3그대로 넣어도 rv_cnt테이블의 아이디가 다 뜨는걸 확인 할 수 있음
where 조건에 1 이상은 다 true이며, 0은 false이다
즉 나의
이 어처구니 없는 식은 where 절에 3 true라고 하는 것이었다
얼척이 없으니...where절에 부등호는 필수이다
1_re_cnt = re_cnt테이블의 1_re_cnt의 max값을 가진 member_id를 가지고 온다
그리고 또
max, min 값을 가진 row단이 필요할 시 간단한 식은
select * from rv_cnt where 1_re_cnt = (select max(1_re_cnt) from rv_cnt)
where 절에 넣어서 확인하면 된다고함,
그 후엔 간단히 MEMBER_PROFILE 테이블과 REST_REVIEW테이블을 조인후,
1st_cnt를 inner join 하여 on 조건에 member_id를 조건으로 걸면 1st_cnt테이블에 있었던 세 건의 아이디만 추려서 가져올 것이다
'DataBase > 프로그래머스' 카테고리의 다른 글
[Level 4]보호소에서 중성화한 동물 (0) | 2023.09.14 |
---|---|
[Level 3]없어진 기록 찾기 (0) | 2023.09.14 |
[Level 3]있었는데요 없었습니다 (0) | 2023.09.14 |
[Level 3]오랜 기간 보호한 동물(1) (0) | 2023.09.14 |
[JOIN] Level 2 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2023.08.22 |