SQL -Group by

Walter Mitty·2022년 5월 24일
0

SQL

목록 보기
2/15

범주의 통계를 내주는 Group by

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 = '신**'
  1. 그 다음 name 으로 grouping
select * from users
where name = '신**'
grouping by name
  1. name, count 수 보이게 세팅
select name, count(*) from users
where name = '신**'
group by name

신** | 14

성씨 별로 by name
결제수단 별로 by payment_method
주차 별로 by week


group by 의 기능

  1. MIN()
    week 별 likes 최소값 구하기
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

0개의 댓글