스파르타_SQL_개발일지

2주차 - Group by 범주의 통계를 내주자~!

천재메기 2023. 2. 8. 15:03

아래는 하나의 쿼리를 짜기 위한 일련의 과정이다.

순서대로 하나씩 이해해보자.

 

# 1) < Select * from 테이블 >으로 먼저 감 잡기

select * from users;

 

# 2) Group by 이해하기

: 유저들을 이름별로 묶어줘!

SELECT * FROM users 
group by name;

그러면 범주가 총 54개가 나온다.

 

# 3) Select name, Count(*) 함께 쓰기

예 : 유저들을 이름으로 묶어주고, 그 묶인 애들이 각각 몇 개인지 개수도 세보자!

그리고 다른 정보 필요 없으니까 이름만 따로 빼서 보자!

SELECT name, COUNT(*)  FROM users
group by name;

애초에 생성되어있는 DB 안에 유저들 이름 자체가 이**이라서 중복된 것들의 개수들이 뜬다.

총 54개의 범주인것은 변함이 없다.

하지만 그 범주 안에 속한 데이터 개수가 몇개인지를 나타내 준다.

 

위 쿼리가 실행되는 순서 : from → group by → select name, count(*)
  • From users : users 테이블 데이터 전체 가져오기
  • group by name : users 테이블에서 같은 name을 갖는 데이터 합쳐주기
  • select name, count(*) : name에 따라 합쳐진 데이터가 각각 몇개가 합쳐졌는지 세어준다. 

살펴보기 

users 테이블에서 '신'씨를 가진 데이터만 불러와서 개수 살펴보기

select * from users
where name = '신**';

Group by 사용해서 신씨를 가진 데이터가 몇개인지 살펴보기

select name, count(*) from users
group by name;

정리

select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;