스프레드시트 Query 문법 (7) Group By

Query 문법 일곱 번째 where 절 이후 옵션 중 데이터를 그룹화하는 Group By 에 대해서 알려드리겠습니다.

 SELECT 컬럼명 [WHERE 조건식] [Group By 컬럼(열)]

위키백과의 Group By절 설명문입니다.

GROUP BY 절은 그룹화 열 또는 컬럼명을 포함하는 식을 지정한다. 컬럼 별명은 사용할 수 없다. 또한 SELECT 문에서 GROUP BY 절에서 그룹 함수를 제외하고 그룹화되지 않은 열이 존재하면 함께 작성해야 한다.

간단하게 설명드리자면, 특정 열의 데이터를 기준으로 그룹으로 묶을 때 사용합니다.

1. 그룹 묶기 Grder By (열)

예시 데이터는 2019년 미쉐린 가이드 서울에서 별점 1점~3점을 받은 레스토랑 26곳의 테이블입니다.

지역(C열)으로 그룹을 묶은 뒤, 각 지역에 속하는 레스토랑(A열)의 개수를 세고 싶은 경우,
QUERY: select C, count(A) group by C

query_Groupby_01

샘플 스프레드시트: [QUERY] Group by > group by 예시1

별점(B열)으로 그룹을 묶은 뒤, 각 지역에 속하는 레스토랑(A열)의 개수를 세고 싶은 경우,
QUERY: select B, count(A) group by B

query_Groupby_02

샘플 스프레드시트: [QUERY] Group by > group by 예시2

2. Group by 중요 포인트

  • 그룹으로 묶을 열은 데이터의 종류가 적은 열을 선택합니다.

예시로 사용한 2019년 미쉐린 가이드 서울 데이터를 보시면 레스토랑(A열) 데이터는 모두 다르기때문에 그룹으로 묶을 수 없습니다. 3종류만 있는 별점(B열)이나, 9종류만 있는 지역(C열)이 그룹으로 묶기에 적절한 데이터입니다.

  • 그룹으로 묶은 데이터는 그대로 Select 가능, 그외 데이터는 함수 계산만 가능합니다.

예시의 select 문을 보시면 group by 로 그룹으로 지정한 열 B나 C는 그대로 select 했습니다. 하지만 그룹으로 지정하지 않은 열 A는 개수를 세는 count( )라는 함수를 사용하였습니다.

select B, count(A) group by B
select C, count(A) group by C

query_gourpby_03.png

지역(C열)으로 그룹을 묶었을 때, 지역 데이터가 ‘강남구’인 레스토랑은 11개나 되기 때문에 A열은 그대로 표시할 수 없습니다. 여러 개의 데이터를 함수를 통해 계산된 데이터만 표시할 수 있습니다.

하지만 함수라고 해서 어렵게 생각하지 않으셔도 괜찮습니다. 스프레드시트에서 사용되는 가장 기본적인 5가지 함수들입니다.

 

  • 평균: avg( )
  • 갯수: count( )
  • 최대치: max( )
  • 최소치: min( )
  • 합계: sum( )

자세한 내용은 Query Language Reference > Aggregation Functions 에서 확인할 수 있습니다.query_gourpby_04.png

다양한 함수를 사용한 다른 QUERY 예시를 보여드리겠습니다.

예시 데이터는 2019년 개봉한 애니메이션 3작품의 일일박스오피스 데이터입니다.

  • 주먹왕 랄프 2: 인터넷 속으로
  • 드래곤 길들이기 3
  • 토이 스토리 4

박스오피스 데이터 중 일부를 준비했습니다.

  • A열 날짜
  • B열 순위
  • C열 영화명
  • D열 개봉일
  • E열 매출액
  • F열 관객수

query_gourpby_10
샘플 스프레드시트: [QUERY] Group by > data 애니메이션 영화

QUERY: select C, min(D), count(A), sum(F), sum(E) group by C

  • group by C : C열 영화명으로 그룹 묶기
  • min(D) : D열 개봉일 데이터 최소치로 각 영화의 개봉일을 계산
  • count(A) : A열 날짜의 갯수로 영화의 상영일수를 계산
  • sum(F) : F열 관객수 데이터의 합계로 누적 관객수를 계산
  • sum(E) : E열 매출액 데이터의 합계로 누적 매출액을 계산

query_groupby_10샘플 스프레드시트: [QUERY] Group by > group by 예시3

참고로, Group by로 만든 결과는 피봇 테이블로도 동일한 결과를 만들 수 있습니다.query_groupby_20샘플 스프레드시트: [QUERY] Group by > 피봇 테이블 예시

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중