EN
MS SQL Server - count distinct values
0
points
In this article, we would like to show you how to count distinct values in MS SQL Server.
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 IDENTITY(1,1),
[name] VARCHAR(100) NOT NULL,
[country] VARCHAR(15) NOT NULL,
PRIMARY KEY ([id])
);
insert_data.sql
file:
INSERT INTO [users]
([name], [country])
VALUES
('Tom', 'Poland'),
('Chris', 'Spain'),
('Jack', 'Spain'),
('Kim', 'Vietnam'),
('Marco', 'Italy'),
('Kate', 'Spain'),
('Nam', 'Vietnam');