이제까지 학습한 문법을 join과 함께 활용하여 통계치 내보기
▼checkins 테이블에 courses 테이블 연결해서 과목별 오늘의 다짐 갯수 세어보기
- select c1.course_id, c2.title, count(*) as cnt from checkins c1 inner join courses c2 on c1.course_id = c2.course_id group by c1.course_id
1. join 을 활용하여 checkins 테이블에 courses 테이블을 연결한다.
ㅊ12. 과목별오늘의 다짐 갯수 통계치 출력하기
👉 [오늘의 팁!]
alias는 이렇게 사용하면 편합니다. 연결되는 테이블이 많아지면서 필드명과 테이블명이 헷갈려 실수할 수 있는데, 이렇게 alias를 지정해 주면 편하고 깔끔하게 SQL 쿼리를 작성할 수 있어요.
▼point_users 테이블에 users 테이블 연결해서 많은 포인트를 얻은 순서대로 유저 데이터 정렬해서 보기
결과값을 좀 더 한눈에 파악하기 쉽도록록 user_id, name, email, point 값만 내림차순으로 출력하기
▼ orders 테이블에 users 테이블 연결해서 네이버 이메일 사용하는 유저의 성씨별 주문건수 세어보기
1. orders 테이블과 users 테이블을 user_id 기준으로 연결 후 네이버 이메일 사용하는 유저만 출력하기.
2. 성씨별 묶어서 성씨별 주문건수 축력하기.
👉 위 쿼리가 실행되는 순서: from → join → where → group by → select
- from orders o: orders 테이블 데이터 전체를 가져오고 o라는 별칭을 붙입니다.
- inner join users u on o.user_id = u.user_id : users 테이블을 orders 테이블 에 붙이는데, orders 테이블의 user_id와 동일한 user_id를 갖는 users 테이블 데이터를 붙입니다. (*users 테이블에 u라는 별칭을 붙입니다)
- where u.email like '%naver.com': users 테이블 email 필드값이 naver.com으 로 끝나는 값만 가져옵니다.
- group by u.name: users 테이블의 name값이 같은 값들을 뭉쳐줍니다
- select u.name, count(u.name) as count_name : users 테이블의 name필드 와 name 필드를 기준으로 뭉쳐진 갯수를 세어서 출력해줍니다.
▼ 웹개발, 앱개발 종합반의 week 별 체크인 수를 세어볼까요? 보기 좋게 정리 해보기!
👉 힌트!!
join 할 테이블: courses에, checkins 를 붙이기
group by, order by에 콤마로 이어서 두 개 필드를 걸어보세요!
▽
▽
▼ 위 값에서 8월 1일 이후에 구매한 고객들만 발라내어 보세요!
[참고] join 할 테이블: courses에, checkins 를 붙이고! + checkins 에, orders 를 한번 더 붙이기!
▽
'개발일지' 카테고리의 다른 글
[개발일지]스파르타 코딩클럽_SQL_UNION (0) | 2022.02.22 |
---|---|
[개발일지] 스파르타 코딩클럽_SQL_left join (0) | 2022.02.21 |
[개발일지]스파르타 코딩클럽_SQL_Join (0) | 2022.02.20 |
[개발일지]스파르타 코딩클럽_SQL_Order by ④ (0) | 2022.02.19 |
[개발일지] 스파르타 코딩클럽_SQL_동일한 범주의 데이터를 묶어주는 Group by③ (0) | 2022.02.18 |