Lv1. 기록자 노트
4주차 강의 아카이빙 본문
짧다면 짧고 길다면 긴 SQL 강의를 완주했다.
마지막 강의는 확실히 실무에서 많이 쓰이는 함수이다 보니 난이도가 더 있는 편이였다.
쿼리는 엑셀에서도 유용하게 쓰일 수 있지만, 실무에서 자유자재로 못 다뤘던 점이 아쉬웠다.
SQL 에서도 쿼리란 단어로 실무에서 많이 쓰인다고 하니 좀 더 집중하면서 강의를 들었던 것 같다.
여태까지 배웠던 함수에서 서브쿼리를 적용해서 원하는 데이터를 추출하는 건 아직은 나에겐 쉬운일은 아니였다.
where 절에 들어가는 Subquery를 사용할 경우, 간단하게 생각하면 where 절에 내가 원하는 함수를 그대로 넣으면 된다.
예시 : 전체 유저의 포인트의 평균보다 큰 유저들의 데이터 추출하기
select * from point_users pu
where point > (select AVG(point) from point_users pu)
원하는 데이터를 어떻게 만드는가에 따라 다양한 방법으로 데이터를 추출할 수 있다.
예시로 Select 절과 From 절에도 동일한 방식으로 서브쿼리를 넣을 수 있는 몇 가지 예시를 언급해보겠다.
예시: checkins 테이블에 course_id별 평균 likes수 필드 우측에 붙여보기
Select checkin_id, course_id, user_id, likes,
(select AVG(c2.likes) from checkins c2
where c.course_id = c2.course_id) as course_avg
from checkins c
예시: checkins 테이블에 과목명별 평균 likes수 필드 우측에 붙여보기
Select checkin_id, c3.title , user_id, likes,
(select AVG(c2.likes) from checkins c2
where c1.course_id = c2.course_id
) as course_avg
from checkins c1
inner join courses c3 on c1.course_id = c3.course_id
예시: course_id별 유저의 체크인 개수를 구해보기!
select course_id, COUNT(DISTINCT(user_id)) from checkins
group by course_id
다시 한 번 정리해보니 동일한 문제를 풀어보는 건데도 틀린다..! : ((
하지만 서브쿼리는 정해진 답을 입력하는 것이 아니다.
중요한 것은 원하는 데이터를 추출하기까지 다양한 코드를 사용해보는 점 인 것 같다.
이로써 SQL 개발일지를 모두 작성해보았다.
처음엔 강의를 수강하기 위한 숙제로서 가볍게 글을 작성했다.
하지만 새로운 지식을 기록하다보니 해당 글은 훗날 나에게 어떠한 형태로든 도움이 될 수 있을 것이란 확신이 들었다.
마지막은 완주한 기념으로 나오는 창으로 글을 마무리 지으려고 한다.
평소에 글을 작성하지 않아 어색하기도 하고 다시 한번 읽었을 때 너무 딱딱한 느낌이 들지 않나 싶다.
이번 일을 계기로 배움에 대한 글 뿐 아니라 일상에서 느끼는 생각들을 정리해서 기록하는 습관을 가지겠노라 다짐했다.
'SQL 아카아빙' 카테고리의 다른 글
SQL 문법 정리 아카이빙 (0) | 2023.04.06 |
---|---|
3주차 강의 아카이빙 (0) | 2023.04.03 |
2주차 강의 아카이빙 (0) | 2023.04.01 |
1주차 강의 아카이빙 (0) | 2023.03.23 |