SQL 하루완성반 - 3주차

J.H.H.·2021년 10월 24일
0

3주차 빡세다...하지만 가자~!!
(오전11시부터 지금껏 SQL -ing)
join문을 배우는 중 범규 튜터의 "정말 쉽죠" 주문을 따라 외며 하나씩 풀어본다.

Q: 결재하고 시작하지 않은 유저들을 성씨별로 세어보기
select name, count(*) as cnt_name from enrolleds en
inner join users u on en.user_id = u.user_id
where is_registered = 0
group by name
order by cnt_name desc

Q: 과목 별로 시작하지 않은 유저들을 세어보기
select en.course_id, title, count(*) as cnt_notstart from enrolleds en
inner join courses c on en.course_id = c.course_id
where is_registered = 0
group by title

심화Q: 웹개발, 앱개발 종합반의 week 별 체크인 수를 세어보자(보기 좋게 정리해보기!)
select c.title, ch.week, count(ch.checkin_id) from courses c
inner join checkins ch on c.course_id = ch.course_id
group by ch.week, c.title
order by c.title, ch.week

심화Q: 위 문제에 이어서 8월 1일 이후에 구매한 고객들만 추출해보기
select c.title, ch.week, count(*) as cnt from courses c
inner join checkins ch on c.course_id = ch.course_id
inner join orders o on ch.user_id = o.user_id
where o.created_at >= '2020-08-01'
group by c.title, ch.week
order by c.title, ch.week

3주차 퀴즈
select e.enrolled_id,
e.user_id,
count(*) as cnt
from enrolleds e
inner join enrolleds_detail ed on e.enrolled_id = ed.enrolled_id
where ed.done = 1
group by e.enrolled_id, e.user_id
order by cnt desc

profile
코린이를 넘어 데이터 시각화를 휘두르는(?) 그날까지

0개의 댓글