users 테이블에서, name 필드끼리 묶어주고, 성씨 별 사람 수를 보여주기
1. 일단 group을 만들어주고
select * from users
group by name
2. 이름 , 성씨 별 사람 수를 보여줘야하니까
select name, count(*) from users
group by name
궁금하다! count()을 했을 때 원래 값의 모든 개수를 카운팅했었는데 왜 여기서는 count()하면 해당 name 별로 카운팅을 하지??
-> 답:(강의에 바로나오네^^;;;머쓱!)
group by 안에 쓰게 되면 count를 전체가 아니라 name으로 묶이는 애들의 개수들을 세어주게 된다.
예) 신씨 성을 가진 사람이 몇명인지 보여주기
1. 먼저 신씨 성을 가진 사람만 골라내기
select * from users
where name = '신**'
select * from users
where name = '신**'
grouping by name
select name, count(*) from users
where name = '신**'
group by name
신** | 14
성씨 별로 by name
결제수단 별로 by payment_method
주차 별로 by week
select week, MIN(likes) from checkins
group by week
기본 틀:
select 범주가 담긴 필드명, min(최소값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명
2. MAX()
3. AVG
(소수점으로 나오는 평균이 거슬릴 땐, round로 감싸 주자.)
rount(avg(),n)
여기서 n의 자리엔 소수점 밑 몇번째 자리까지 나올거냐를 말해준다. 그냥 반올림 하고 싶으면 rount(avg(),0)
4. SUM