[목표]
📌 Group by란?
동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것을 의미한다.
Group by를 이용하면 1) 같은 성씨의 데이터를 하나로 묶고 2) 각 성씨의 회원수를 구할 수 있다.
```sql
select name, count(*) from users
group by name;
```
1. `select * from users`
2. `select * from users`
`group by name`
3. `select name, count(*) from users`
`group by name`
select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;
select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, max(최댓값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
소숫점 둘째자리 까지 정렬: round(avg(),2)
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
SELECT * from checkins
order by likes
SELECT * from checkins
order by likes DESC
select name, count(*) from users
group by name
order by count(*);
select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method;
💡 쿼리 작성하는 팁
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 범주를 나눠서 보고싶은 필드를 찾기
5) 범주별로 통계를 보고싶은 필드를 찾기
6) SQL 쿼리 작성하기
📌 쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있어 SQL은 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
✏️ 네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의 결제수단별 주문건수 세어보기
SELECT payment_method , count(*) from orders
where course_title ='앱개발 종합반'
and email like '%naver.com'
group by payment_method