EN
MySQL - count distinct values
0
points
In this article, we would like to show you how to count distinct values in MySQL.
Quick solution:
SELECT COUNT(DISTINCT `column_name`)
FROM `table_name`;
SELECT COUNT(`column1`) AS `alias_name`, `column2`, `columnN`
FROM `table_name`
GROUP BY `columnN`
ORDER BY COUNT(`column1`) DESC;
Practical example
To show how to count distinct values, we will use the following table:
Note:
At the end of this article you can find database preparation SQL queries.
Example 1
In this example, we will count the number of unique countries in users
table.
Query:
SELECT COUNT(DISTINCT(`country`)) AS `unique_countries`
FROM `users`;
Output:
Example 2
In this example, we will count the number of users in every (unique) country in descending order.
Query:
SELECT COUNT(`name`) AS `number of users`, `country`
FROM `users`
GROUP BY `country`
ORDER BY COUNT(`name`) DESC;
Output:
Database preparation
create_tables.sql
file:
CREATE TABLE `users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`country` VARCHAR(15) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
insert_data.sql
file:
INSERT INTO `users`
(`name`, `country`)
VALUES
('Tom', 'Poland'),
('Chris', 'Spain'),
('Jack', 'Spain'),
('Kim', 'Vietnam'),
('Marco', 'Italy'),
('Kate', 'Spain'),
('Nam', 'Vietnam');