Summary: in this tutorial, you will learn how to use the MariaDB count() function to return the number of rows in a table.
An overview of the MariaDB count() function
The MariaDB count() is an aggregate function that returns the number of rows in a table.
Here is the syntax of the count() function:
count( all | distinct expression)
Code language: SQL (Structured Query Language) (sql)The count() function accepts a set of rows and returns the number of rows in the set.
The count(expression) is the same as count(all expression) that returns the number of non-null values including duplicates.
The count(distinct expression) returns the number of unique non-null values.
The count(*) returns the number of values including nulls.
MariaDB count() function illustration
First, create a new table called count_demos:
create table count_demos(
c int
);
Code language: SQL (Structured Query Language) (sql)Second, insert some rows into the count_demos table:
insert into count_demos(c)
values(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)Third, query data from the count_demos table:
select c from count_demos;
Code language: SQL (Structured Query Language) (sql)Fourth, the following statement uses the count(*) function to return the number of rows in the count_demos table:
select
count(*) row_count
from
count_demos;
Code language: SQL (Structured Query Language) (sql)
Fifth, this example uses the count(distinct expression) to return the number of non-null rows in the count_demos table:
select
count(c) row_count
from
count_demos;
Code language: SQL (Structured Query Language) (sql)
Sixth, this statement uses the count(distinct expression) to return the number of unique and non-null rows from the count_demos table:
select
count(distinct c) row_count
from
count_demos;
Code language: SQL (Structured Query Language) (sql)
MariaDB count() function examples
We’ll use the table countries and regions from the sample database for the demonstration.

A) Using MariaDB count(*) function to return the number of rows in a table
This example uses the count(*) function to get the number of rows in the countries table:
select
count(*) country_count
from
countries;
Code language: SQL (Structured Query Language) (sql)
To get the number of countries that have national day recorded, you use a where clause:
select
count(*) country_count
from
countries
where
national_day is not null;
Code language: SQL (Structured Query Language) (sql)
B) Using the MariaDB count() function with a group by clause
The count() function is often used with a group by clause to find the number of values for each group.
For example, the following statement uses the count(expression) to find the number of countries in each region:
select
region_id,
count(country_id) country_count
from
countries
group by
region_id
order by
region_id;
Code language: SQL (Structured Query Language) (sql)
In this example:
- First, the
group byclause divides countries by region id into groups. - Second, the
count()function returns the number of countries in each group.
To get the region names and the number of countries in each region, you add a join clause to the above query:
select
regions.name region,
count(country_id) country_count
from
countries
inner join regions
using (region_id)
group by
regions.name
order by
region;
Code language: SQL (Structured Query Language) (sql)
B) Using the MariaDB count() function with a having clause
The following statement uses the count() function in 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(country_id) > 10
order by
country_count;
Code language: SQL (Structured Query Language) (sql)
In this tutorial, you learned how to use the MariaDB count() function to find the number of rows in a table.