어느덧 스파르타 코딩클럽과 함께 엑셀보다 쉬운 SQL 2주차 강의를 진행하고 있다.
앞서서 기존에는 공부에 대한 개발일지 개념으로 블로그 글을 작성하였다면,
이번 게시글에서는 포털에 키워드로 유입될 수 있게 글을 작성해보고자 한다 ^^;;
(과연 키워드로 유입을 받을 수 있을지 모르겠지만..)
스파르타 코딩클럽 2주차 Group by 에 대해 알아보자.
1. SQL Group by 란?
동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것을 의미한다.
예를들어 1) 같은 데이터를 하나로 묶고, 그걸 바탕으로 수치를 구할 수 있다.
select name, count(*) from users
group by name;
Group by를 통해 성씨의 데이터를 묶고, 각 성씨의 회원수를 구해보았다.

- from users: users 테이블에서 데이터를 불러온다.
- group by name: name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐준다.
- select name, count(): 이름과 count()를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 셀수 있다.
2. SQL 쿼리가 실행되는 순서
select name, count(*) from users
group by name;
위 쿼리 문에서 쿼리가 실행되는 순서는 다음과 같다.
from > group by > select
- from users: users 테이블 데이터 전체를 가져온다.
- group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐준다.
- select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어준다.
3. Group by 기능 알아보기
1) 동일한 범주에서의 개수 구하기
동일한 범주의 갯수는 count(*)를 사용해서 구할 수 있다.
select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;
2) 동일한 범주에서의 최솟값 구하기
동일한 범주의 최솟값은 min(필드명)을 사용해서 구할 수 있다.
select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
3) 동일한 범주에서의 최댓값 구하기
동일한 범주의 최댓값은 max(필드명)을 사용해서 구할 수 있다.
select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
4) 동일한 범주의 평균 구하기
동일한 범주의 최댓값은 avg(평균값을 알고 싶은 필드명)을 사용해서 구할 수 있다.
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
예시) 평균 값의 경우, 아래와 같이 소수점이 출력되는 경우가 있다.
반올림 하고 싶을 때는, round 를 사용해서 소숫점 자리수를 출력할 수 가 있다.
[평균 값을 구했을 때 출력된 데이터]

[round 를 사용하여 반올림한 경우]

5) 동일한 범주의 합계 구하기
동일한 범주의 sum(필드명)을 사용해서 구할 수 있다.
select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
스파르타 코딩클럽 2주차 Group by에 대해 알아 보았다.
'보리팀장의 마케팅 이야기 > 개발일지' 카테고리의 다른 글
| SQL Where 절과 자주 같이 쓰는 문법 활용하기 (0) | 2023.01.17 |
|---|---|
| SQL select를 사용하여 Table 을 불러오는 방법(Feat. Where 절) (0) | 2023.01.16 |
댓글