[ 학습 목표 ]
동일한 범주의 데이터를 묶어서 통계를 내주는 Group by를 이해한다.
출력하는 데이터를 필드의 값으로 정렬하여 출력하는 Order by를 익힌다.
조금 더 복잡한 분석을 위해 자주 사용되는 유용한 문법을 익힌다.
Group by
동일한 범주를 갖는 데이터를 하나로 묶어서,
범주별 통계를 내주는 것
Ex)
select name, count(*) from users
group by name;
Group by를 사용하면
같은 성씨의 데이터를 하나로 묶고
각 성씨의 회원수를 구할 수 있다 !
※ from → group by → select 순으로 쿼리가 실행된다
순서는 꼭 잘 지키자
Order by
마지막에 이 기능을 사용하면 오름차순으로
깔끔하게 정렬이 가능하다.
최댓값 : max
최솟값 : min
평균값 : avg
합계 : sum
select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
위치는 전부 동일하다 !
내림차순은 desc
(descending의 약자)
select name, count(*) from users
group by name
order by count(*) desc;
order by count(*)에 desc를 붙여주면 내림차순으로 정렬한다.
이제 응용해서 문제를 퀴즈를 풀어봤다 !
[퀴즈] 앱개발 종합반의 결제수단별 주문건수 세어보기
SELECT payment_method,COUNT(*) from orders
WHERE course_title = '앱개발 종합반'
group BY payment_method
[퀴즈] Gmail 을 사용하는 성씨별 회원수 세어보기
SELECT name,COUNT(*) FROM users
WHERE email LIKE '%gmail.com'
GROUP BY name
[퀴즈] course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기
SELECT course_id ,avg(likes) FROM checkins
group by course_id
이 순서는 늘 기억하자
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 범주를 나눠서 보고싶은 필드를 찾기
5) 범주별로 통계를 보고싶은 필드를 찾기
6) SQL 쿼리 작성하기!
< 그 외 유용한 문법 >
SQL은 Alias라는 별칭 기능을 지원한다.
테이블명 뒤에 as를 붙여서 별칭을 추가하는 것도 가능하고,
출력될 필드에 별칭을 붙이는 것도 가능하다.
예를들어,
select payment_method as 결제방법, count(*) as 개수 from orders o
where o.course_title = '앱개발 종합반'
group by payment_method
from orders 뒤에 o를 붙여서 별칭을 지어주었다.
( 나중에 개수가 많아지면 헷갈릴 수 있어서 구분하기 위해 )
그리고 payment_method와 Count(*) 뒤에 as를 붙여 별칭을 지어줬는데,
as를 붙여서 별칭을 지어주면
결과창에 지어준 별칭대로 출력된다 !
[ 과제 ] 네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의
결제수단별 주문건수 세어보기
SELECT * FROM orders
WHERE email LIKE '%naver.com'
AND course_title = '앱개발 종합반'
orders로 원하는 필드가 있는 테이블명을 살펴보고
네이버 이메일을 사용한다고 하니 Where문으로 지정해주고
조건이 하나 더 있으니
And를 활용해서 앱개발 종합반을 신청한 사람들만 볼 수 있게 지정했다.
SELECT payment_method,COUNT(*) FROM orders
WHERE email LIKE '%naver.com'
AND course_title = '앱개발 종합반'
GROUP BY payment_method
결제수단별 주문건수를 세는게 목적이므로
Group By로 결제수단 묶어주고
Select (주문건수), Count(*)를 입력해서 결과값을 출력했다.
답은 이렇다!
~ 과제 제출 완료 ~
그 뒤로 별칭 짓는 거 응용해보고 싶어서
연습 해봤다 헷
SELECT payment_method as 결제수단 ,COUNT(*) as 개수 FROM orders
WHERE email LIKE '%naver.com'
AND course_title = '앱개발 종합반'
GROUP BY payment_method
한글로 바꾸고 싶어서
as 결제수단 , as 개수로 바꿔주었다.
짠 !
파이썬으로 머리 터질 것 같았는데
SQL 하니까 훨씬 나은 것 같다!!
너무 재밌다!!
사실 1주차 과제는 이해가 잘 안돼서 제대로 못 풀었는데
이번 과제는 스스로 해냈다
너무 기분 좋다 ㅎㅅㅎ
이해하기 쉽게 설명해주셔서 두 번만 정독하면 바로 이해된다 !
다음 강의도 바로 들어야지
'개발 일지 > SQL' 카테고리의 다른 글
[개발 일지] 엑셀 보다 쉬운, SQL _ 4주차 (1) | 2023.06.06 |
---|---|
[개발 일지] 엑셀 보다 쉬운, SQL _ 3주차 (0) | 2023.06.02 |
[개발 일지] 엑셀 보다 쉬운, SQL _ 1주차 (0) | 2023.05.19 |