보리팀장의 마케팅 이야기/개발일지

SQL 스파르타 코딩클럽 2주차 강의 후기 및 Group by 에 대해 알아보자~!

보리팀장 2023. 1. 25.

어느덧 스파르타 코딩클럽과 함께 엑셀보다 쉬운 SQL 2주차 강의를 진행하고 있다.

앞서서 기존에는 공부에 대한 개발일지 개념으로 블로그 글을 작성하였다면,

 

이번 게시글에서는 포털에 키워드로 유입될 수 있게 글을 작성해보고자 한다 ^^;;

(과연 키워드로 유입을 받을 수 있을지 모르겠지만..)

 

스파르타 코딩클럽 2주차 Group by 에 대해 알아보자.

 

1. SQL Group by 란?

동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것을 의미한다.

예를들어 1) 같은 데이터를 하나로 묶고, 그걸 바탕으로 수치를 구할 수 있다.

 

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

Group by를 통해 성씨의 데이터를 묶고, 각 성씨의 회원수를 구해보았다.

  1. from users: users 테이블에서 데이터를 불러온다.
  2. group by name: name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐준다.
  3. select name, count(): 이름과 count()를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 셀수 있다.

2. SQL 쿼리가 실행되는 순서

 

select name, count(*) from users

group by name;

 

위 쿼리 문에서 쿼리가 실행되는 순서는 다음과 같다.

from > group by > select

  1. from users: users 테이블 데이터 전체를 가져온다.
  2. group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐준다.
  3. 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에 대해 알아 보았다.

반응형

댓글