퀴즈풀기
1. 결제 수단 별 유저 포인트의 평균값 구해보기 (어느 결제수단이 가장 열심히 듣고 있나~)
join 할 테이블: point_users 에, orders 를 붙이기
~별 이 나로면 그걸 기준으로 group by 한다고 생각하기!(즉 group by 결제수단)
내가 풀은 답
select o.payment_method, round(avg(pu.point),0) as avg_point from point_users pu
inner join orders o on pu.user_id = o.user_id
group by o.payment_method
결과
이해 완료!
2. 결제하고 시작하지 않은 유저들을 성씨별로 세어보기 (어느 성이 가장 시작을 안하였는가~)
join 할 테이블: enrolleds 에, users 를 붙이기
꿀팁! → is_registered = 0 인 사람들을 세어보아요!
꿀팁! → order by 를 이용해서 내림차순으로 정렬하면 보기 좋겠죠?
내가 풀은 답
SELECT u.name, count(*) as not_start FROM enrolleds e
inner join users u on e.user_id = u.user_id
where e.is_registered = 0
group by u.name
order by not_start desc
결과
답이 원하는대로 잘 나오니 재미가 있고만..ㅎㅎ
3. 과목 별로 시작하지 않은 유저들을 세어보기
join 할 테이블: courses에, enrolleds 를 붙이기
꿀팁! → is_registered = 0 인 사람들을 세어보아요!
내가 풀은 답
SELECT c.title, count(*) as cnt_notyetstart FROM courses c
inner join enrolleds e on c.course_id = e.course_id
WHERE e.is_registered = 0
group by c.title
결과
무난히 정답~
4. 웹개발, 앱개발 종합반의 week 별 체크인 수를 세어볼까요? 보기 좋게 정리해보기!
join 할 테이블: courses에, checkins 를 붙이기
꿀팁! → group by, order by에 콤마로 이어서 두 개 필드를 걸어보세요!
내가 풀은 답
SELECT title, week, count(*) as cnt_checkin from courses c
inner join checkins c2 on c.course_id = c2.course_id
group by title, week
order by title
결과
group by 에 콤마로 두가지 조건을 주는게 포인트.
group by 할 때 나는 title과 week를 그냥 썼는데
어느 테이블에 있는 title 과 week인지 붙여주는 습관을 들이는 것이 좋을 듯.
5. 연습4번에서, 8월 1일 이후에 구매한 고객들만 발라내어 보세요!
join 할 테이블: courses에, checkins 를 붙이고! + checkins 에, orders 를 한번 더 붙이기!
.. 발라내어 보란 말이 무슨 뜻인지?ㅎㅎ
두번조인하는 방법은 한번 더 쓰면 됨.
정답 :
select c1.title, c2.week, count(*) as cnt from courses c1
inner join checkins c2 on c1.course_id = c2.course_id
inner join orders o on c2.user_id = o.user_id
where o.created_at >= '2020-08-01'
group by c1.title, c2.week
order by c1.title, c2.week
날짜를 조건에 넣을 때 ' ' (따옴표)안에 넣는다~
모로가도 데이터만 나오면 된다~
정답이 하나가 아니라고 알려주시니 더 이리저리 해볼 마음이 생기는 듯. 감사합니다~
'Week I Learned' 카테고리의 다른 글
[SQL]개발일지(스파르타코딩국비교육4주차)_subquery,with.. (0) | 2023.02.16 |
---|---|
[SQL]스파르타코딩클럽3-5,6,7 LEFT조인, UNION (0) | 2023.02.14 |
[SQL]연결하기 JOIN_스파르타코딩3주차강의노트 (0) | 2023.02.10 |
[파이썬]스파르타코딩클럽2주차:손쉽게 다루는 해외주식-데이터분석기초, 해외주식다루기 (0) | 2023.02.09 |
[파이썬]스파르타 코딩클럽으로 입문하기 (0) | 2023.02.06 |