Summary: in this tutorial, you will learn how to use the MariaDB group by
clause to group data.
Introduction to MariaDB group by clause
The group by
clause groups rows of a result into groups. The following illustrates the syntax of the group by
clause:
select
select_list
from
table_name
group by
column1, column2,...;
Code language: SQL (Structured Query Language) (sql)
The group by
is often used with aggregate functions including count()
, min()
, max()
, sum()
, and avg()
to find properties of groups such as the number of elements (count), the total of values (sum), the maximum element (max), the minimum element (min), and the average of elements (avg).
The following shows the syntax of the group by
clause used with an aggregate function:
select
column1,
aggregate_function(column2)
from
table_name
group by
column1;
Code language: SQL (Structured Query Language) (sql)
In this syntax, the group by
clause groups rows into groups and the aggregate function is applied to each group to return the summary row.
MariaDB group by clause examples
We’ll use the countries
and regions
tables from the nation
sample database for the demonstration.
A) Using the MariaDB group by clause with the count() function example
The following statement uses the group by
clause with the count()
function to get the number of countries in each region:
select
region_id,
count(country_id)
from
countries
group by
region_id
order by
region_id;
Code language: SQL (Structured Query Language) (sql)
In this example:
- First, the
group by
clause divides the countries by regions. - Then, the
count()
function is applied to each region to return the number of countries.
To make the output more meaningful, you can join the countries
table with the regions
table:
select
regions.name,
count(country_id) country_count
from
countries
inner join regions using (region_id)
group by
regions.name
order by
regions.name;
Code language: SQL (Structured Query Language) (sql)
B) Using the MariaDB group by clause with the sum() function
The following example uses the group by
clause with the sum()
function to calculate the total area of countries in each region:
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;
Code language: SQL (Structured Query Language) (sql)
C) Using the MariaDB group by clause with themin() and max() functions
The following example uses the group by
clause with the min()
and max()
functions to find the minimum and maximum areas of countries in each region:
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;
Code language: SQL (Structured Query Language) (sql)
D) Using the MariaDB group by clause with the avg() function
The following example uses the group by clause with the avg()
function to calculate the average area of countries in each region:
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;
Code language: SQL (Structured Query Language) (sql)
In this tutorial, you have learned how to use the MariaDB group by
clause to group data.