EN
MySQL - count rows per month
0 points
In this article, we would like to show you how to count rows per month in MySQL.
Quick solution:
xxxxxxxxxx
1
SELECT
2
DATE_FORMAT(`datetime_column_name`, '%Y-%m') as `alias_name1`,
3
COUNT(*) as `alias_name2`
4
FROM `table_name`
5
GROUP BY MONTH(`datetime_column_name`)
6
ORDER BY `alias_name2` DESC;
To show how to count rows per month, we will use the following table:

Note:
At the end of this article you can find database preparation SQL queries.
In this example, we will display the month number and the number of registered users for each month in descending order.
Query:
xxxxxxxxxx
1
SELECT
2
DATE_FORMAT(`registration_time`, '%Y-%m') as `date`,
3
COUNT(*) as `count`
4
FROM `users`
5
GROUP BY MONTH(`registration_time`)
6
ORDER BY `count` DESC;
Result:

create_tables.sql
file:
xxxxxxxxxx
1
CREATE TABLE `users` (
2
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
3
`username` VARCHAR(50) NOT NULL,
4
`registration_time` DATETIME NOT NULL,
5
PRIMARY KEY (`id`)
6
);
insert_data.sql
file:
xxxxxxxxxx
1
INSERT INTO `users`
2
(`username`, `registration_time`)
3
VALUES
4
('Tom', '2021-01-01 11:41:31'),
5
('Chris','2021-02-02 11:42:45'),
6
('Jack','2021-03-03 15:13:39'),
7
('Kim','2021-03-03 15:24:51'),
8
('Marco','2021-03-03 22:35:38'),
9
('Kate','2021-04-04 22:46:51'),
10
('Nam','2021-04-04 22:57:37');