배울 것!
* 통계 : 최대 / 최소 / 평균 / 갯수
가장 많은 like를 받은 사람의 이름, 전체 신청자 수, 평균 연령 등 : 의미있는 정보
더 나아가면? '범주(category)' 각각의 정보가 궁금할 수 있다.
ex. 과목별 신청자 평균 연령, 과목별 신청자 수, 성씨별 회원수
* 통계 구하기 : 기존 방법의 한계
* 동일한 범주의 데이터를 묶어주는 Group by
* 깔끔하게 데이터를 정렬해보자 : Order by
쿼리가 실행되는 순서
성씨별로 몇 명의 회원이 있는지
SELECT name, COUNT(*) FROM users u
group by name
from users : users 데이터를 가져온다.
group by name : 테이블 데이터에서 같은 name을 갖는 데이터를 합친다.
select name, count(*) : name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어준다.
group by
1. checkins에서 주차별로 comment 개수 구하기
SELECT week, count(*) FROM checkins c
group by week
2. 오늘의 다짐의 주차별로 like 최소값!
SELECT week, min(likes) FROM checkins c
group by week
3. 최대값
SELECT week, max(likes) FROM checkins c
group by week
4. 평균
SELECT week, avg(likes) FROM checkins c
group by week
5. 평균을 보여주는데 반올림을 2째 자리까지 해줘.
SELECT week, round(avg(likes),2) FROM checkins c
group by week
6. 합
SELECT week, sum(likes) FROM checkins c
group by week
order by
보통 데이터를 구한 뒤, 마지막에 정렬하므로 마지막에 써준다.
* 오름차순 정렬
select name, count(*) from users
group by name
order by count(*)
* 내림차순 정렬
select name, count(*) fromusers
group by name
order by count(*) desc
* group by와 같이 쓰이지 않을 때
select * from checkins c
order by likes desc
실행 순서 잘 생각하기!
* order by는 문자열도 가능하다. 영어, 한글
많이 겪는 오류(지만 오류라고 뜨지는 않는다.)
select * from orders
group by payment_method
위 코드를 실행시키면 뭔가 이상하게 나온다. 왜? 뭘 기준으로 통계를 낼 건지 말해주지 않았다.
그래서 payment_method에서 대표되는? 애들만 뽑아서 다 보여준다.
select count(*) from orders
group by payment_method
라고 실행시키면 숫자만 나온다.
Practice
1. 앱개발 종합반의 결제수단별 주문건수
select payment_method , count(*) from orders o
WHERE course_title = '앱개발 종합반'
group by payment_method
2. gmail을 사용하는 성씨별 회원수 세어보기
select name, COUNT(*) from users u
WHERE email like '%@gmail.com'
group by name
3. course_id별 '오늘의 다짐'에 달린 평균 like 갯수 구해보기
select course_id , avg(likes) from checkins c
group by course_id
별칭 기능 : Alias
select * from orders o
WHERE o.course_title = '앱개발 종합반'
select payment_method , count(*) as cnt from orders o
WHERE o.course_title = '앱개발 종합반'
group by payment_method
'STUDY > SQL' 카테고리의 다른 글
스파르타 코딩클럽 <엑셀보다 쉬운 SQL> 4주차 문법 정리 (0) | 2023.05.13 |
---|---|
스파르타 코딩클럽 <엑셀보다 쉬운 SQL> 3주차 문법 정리 (0) | 2023.05.13 |
스파르타 코딩클럽 <엑셀보다 쉬운 SQL> 1주차 문법 정리 (0) | 2023.05.13 |