Summary: in this tutorial, you will learn how to use the MariaDB having clause to specify a search condition for groups.
Introduction to MariaDB having clause
The where clause allows you to specify a search condition for filtering rows returned by the select statement. However, it cannot be used for filtering summarized rows created by the group by clause.
To specify a search condition for filtering summarized rows generated by the group by clause, you use the having clause.
The following illustrates the syntax of the having clause:
select
select_list
from
table_name
group by
column1,
column2,
...
having
search_condition;
Code language: SQL (Structured Query Language) (sql)The having clause appears immediately after the group by clause. To form the having clause, you specify a search_condition that may consist of one or more Boolean expressions. The select statement will return only groups (or rows) which cause the search_condition to evaluate to true.
MariaDB having clause examples
We’ll use the countries and regions tables from the nation sample database:

A) Using the MariaDB having clause to filter group example
The following example uses the having clause to find regions that have more than 10 countries:
select
regions.name region,
count(country_id) country_count
from
countries
inner join regions
using (region_id)
group by
(regions.name)
having
count(region_id) > 10
order by
country_count desc;
Code language: SQL (Structured Query Language) (sql)
B) Using the MariaDB having clause with a complex condition example
The following example uses the having clause to find countries that have more than 10 countries and total areas greater than 1,000,000 km2:
select
regions.name region,
count(country_id) country_count,
sum(area) area
from
countries
inner join regions
using (region_id)
group by
(regions.name)
having
count(region_id) > 10 and
area > 1000000
order by
area desc,
country_count desc;
Code language: SQL (Structured Query Language) (sql)
In this tutorial, you have learned how to use the MariaDB having clause to specify a search condition for groups.