[MariaDB Tutorial 번역 글]
- Select : https://rural-mouse.tistory.com/43
- Order By : https://rural-mouse.tistory.com/44
- Where : https://rural-mouse.tistory.com/45
- Distinct : https://rural-mouse.tistory.com/46
- Between : https://rural-mouse.tistory.com/48
- Like : https://rural-mouse.tistory.com/49
- In : https://rural-mouse.tistory.com/50
- Limit : https://rural-mouse.tistory.com/51
- Is Null : https://rural-mouse.tistory.com/52
- Joins : https://rural-mouse.tistory.com/53
- Inner Join : https://rural-mouse.tistory.com/54
- Left Join : https://rural-mouse.tistory.com/55
- Group By ←←
- Having : https://rural-mouse.tistory.com/59
- Subqueries : https://rural-mouse.tistory.com/60
- Insert : https://rural-mouse.tistory.com/61
- Insert Multiple Rows : https://rural-mouse.tistory.com/62
- Insert Into Select : https://rural-mouse.tistory.com/63
- Update : https://rural-mouse.tistory.com/64
원문 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-group-by/
여기에 있는 모든 예제는 MariaDB sample database인 nation을 가지고 진행됩니다.
만약 읽고 따라 해 보시는 게 목적이라면 다운로드를 받고 읽어보시길 추천합니다.
원본 링크 : https://www.mariadbtutorial.com/getting-started/mariadb-sample-database/
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 에 대해 배워보겠습니다.
'번역 > MariaDB' 카테고리의 다른 글
[MariaDB Tutorial 번역] 15. Subqueries (0) | 2021.07.09 |
---|---|
[MariaDB Tutorial 번역] 14. Having (0) | 2021.07.08 |
[MariaDB Tutorial 번역] 12. Left join (0) | 2021.07.06 |
[MariaDB Tutorial 번역] 11. Inner join (0) | 2021.07.05 |
[MariaDB Tutorial 번역] 10. Join (0) | 2021.07.03 |
댓글