본문 바로가기
번역/MariaDB

[MariaDB Tutorial 번역] 13. Group By

by 촌쥐 2021. 7. 6.

[MariaDB Tutorial 번역 글]

  1. Select : https://rural-mouse.tistory.com/43
  2. Order By : https://rural-mouse.tistory.com/44
  3. Where : https://rural-mouse.tistory.com/45
  4. Distinct : https://rural-mouse.tistory.com/46
  5. Between : https://rural-mouse.tistory.com/48
  6. Like : https://rural-mouse.tistory.com/49
  7. In : https://rural-mouse.tistory.com/50
  8. Limit : https://rural-mouse.tistory.com/51
  9. Is Null : https://rural-mouse.tistory.com/52
  10. Joins : https://rural-mouse.tistory.com/53
  11. Inner Join : https://rural-mouse.tistory.com/54
  12. Left Join : https://rural-mouse.tistory.com/55
  13. Group By ←←
  14. Having : https://rural-mouse.tistory.com/59
  15. Subqueries : https://rural-mouse.tistory.com/60
  16. Insert : https://rural-mouse.tistory.com/61
  17. Insert Multiple Rows : https://rural-mouse.tistory.com/62
  18. Insert Into Select : https://rural-mouse.tistory.com/63
  19. Update : https://rural-mouse.tistory.com/64

원문 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-group-by/

 

MariaDB Group By

In this tutorial, you will learn how to use the MariaDB group by clause to group data.

www.mariadbtutorial.com


여기에 있는 모든 예제는 MariaDB sample database인 nation을 가지고 진행됩니다.

만약 읽고 따라 해 보시는 게 목적이라면 다운로드를 받고 읽어보시길 추천합니다.

원본 링크 : https://www.mariadbtutorial.com/getting-started/mariadb-sample-database/

 

MariaDB Sample Database

In this tutorial, you will learn about a MariaDB sample database nation and how to load the sample database into the MariaDB server.

www.mariadbtutorial.com


MariaDB의 group by 절에 대한 소개

group by 절은 결과로 나온 Row들의 Group들을 group들로 묶습니다. 다음은 Group by 구문의 예제입니다.

select
    select_list
from
    table_name
group by
    column1, column2,...;

group by는 [Row 갯수 / count()], [최소 값 / min()], [최대 값 / max()], [총 합 / sum()], [평균 / avg()] 같은 것을 찾기 위해 집계 함수들과 사용되고는 합니다. 다음은 집계 함수와 함께 사용되는 group by 절의 예제 입니다.

select
    column1,
    aggregate_function(column2)
from
    table_name
group by
    column1;

이 문법에서 group by 절은 그룹으로 row를 묶고 집계 함수가 적용되어 각 그룹에 대해 row의 개요(max, min 같은)를 반환해줍니다. 

 

MariaDB의 group by 절에 대한 예제

샘플 데이터베이스을 사용하여 nation의 countries와 regions Table의 데이터를 가져옵니다.

 

A) MariaDB의 count() 함수와 사용되는 group by 절 예제

다음은 group by 절을 count() 함수와 함께 사용하여 각 지역당 나라의 개수를 얻어오는 명령문입니다.

select 
    region_id, 
    count(country_id) 
from 
    countries
group by 
    region_id
order by 
    region_id;

 

  • 첫번째로 group by 절은 각 region당 countries로 나눕니다.
  • 그리고 count() 함수를 적용하여 각 지역의 국가 수를 반환합니다.

좀 더 아웃풋을 의미를 확실하게 알 수 있도록 바꾸기 위해 countries Table과 regions Table을 join 할수 있습니다.

select 
    regions.name, 
    count(country_id) country_count
from 
    countries
inner join regions using (region_id)
group by 
    regions.name
order by 
    regions.name;

 

B) MariaDB의 sum() 함수와 함께 사용 되는 group by 절 예제

다음 group by 절 예제는 sum() 함수와 함께 사용되어 각 region당 countries의 area 총합을 계산합니다.

select 
    regions.name region, 
    sum(area) region_area
from 
    countries
inner join regions 
    using (region_id)
group by
    regions.name
order by 
    region_area desc;

C) MariaDB의 min(),max() 함수와 함께 사용 되는 group by 절 예제

다음 group by 절 예제는 min(), max() 함수와 함께 사용되어 각 region당 countries의 가장 area가 큰 나라와 area가 가장 작은 나라의 area 크기를 반환합니다.

select 
    regions.name region, 
    min(area) smallest_country_area,
    max(area) largest_country_area
from countries
inner join regions using (region_id)
group by 
    regions.name
order by 
    regions.name;

 

D) MariaDB의 avg() 함수와 함께 사용 되는 group by 절 예제

다음 group by 절 예제는 avg() 함수와 함께 사용되어 각 region당 countries의 area 평균을 계산합니다.

select 
    regions.name region, 
    avg(area) avg_area
from 
    countries
inner join regions 
    using (region_id)
group by 
    regions.name
order by 
    avg_area desc;

 

 

이번 튜토리얼에서는 결과 Row들을 그룹으로 묶는 group b 절을 배워봤습니다.

그룹에 대한 검색 조건을 지정하는 Having 에 대해 배워보겠습니다.

댓글