[퀴즈 1] 결제 수단 별 유저 포인트의 평균값 구해보기 (어느 결제수단이 가장 열심히 듣고 있나~)
내가 쓴 오답
SELECT pu.point, AVG(*) FROM point_users pu
inner join orders o on pu.user_id = o.user_id
WHERE u.point
GROUP by o.payment_method
정답
SELECT o.payment_method, ROUND(AVG(pu.`point`),2) FROM point_users pu
inner join orders o on pu.user_id = o.user_id
GROUP by o.payment_method
[퀴즈 2] 결제하고 시작하지 않은 유저들을 성씨별로 세어보기 (어느 성이 가장 시작을 안하였는가~)
SELECT name, COUNT(*) as cnt FROM enrolleds e
inner join users u on e.user_id = u.user_id
WHERE is_registered LIKE '0'
GROUP by name
order by COUNT(*) DESC
[퀴즈 3] 과목 별로 시작하지 않은 유저들을 세어보기
내가 쓴 오답
SELECT course_id, COUNT(title) FROM courses c
left join enrolleds e on c.course_id = e.course_id
GROUP by title LIKE e.is_registered = 0
정답
SELECT c.course_id, c.title, COUNT(*) as cnt_nostart FROM courses c
inner join enrolleds e on c.course_id = e.course_id
WHERE e.is_registered = 0
group by c.course_id
[퀴즈 4] 웹개발, 앱개발 종합반의 week 별 체크인 수
내가 쓴 오답
SELECT title, week, COUNT(*) FROM courses c1
inner join checkins c2 on c1.course_id =c2.course_id
GROUP by title , WEEK(*)
ORDER by title , WEEK(*) DESC
정답
SELECT c1.title, c2.week, COUNT(*) FROM courses c1
inner join checkins c2 on c1.course_id =c2.course_id
GROUP by c1.title , c2.week
ORDER by c1.title , c2.WEEK
[퀴즈 4] 연습4번에서, 8월 1일 이후에 구매한 고객들만 골라내기
내가 쓴 오답
SELECT * 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-02
정답
SELECT c1.title, c2.week, COUNT(*) 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
------------------------------------------
배운 코드가 쌓이다 보니까 마구잡이로 헷갈리기 시작함.
'SQL study' 카테고리의 다른 글
SQL study_6 (0) | 2023.02.01 |
---|---|
SQL study_4 (0) | 2023.01.23 |
SQL study_3 (0) | 2023.01.21 |
SQL study_2 (0) | 2023.01.21 |
SQL study_1 (0) | 2023.01.19 |