Languages
[Edit]
EN

MS SQL Server - find duplicated values in multiple columns

0 points
Created by:
Dirask JS Member
3610

In this article, we would like to show you how to find duplicated values in multiple columns in MS SQL Server.

Quick solution:

SELECT 
    [column1], COUNT([column1]),
    [column2], COUNT([column2]),
    [columnN], COUNT([columnN])
FROM
    [table_name]
GROUP BY 
    [column1],
    [column2],
    [columnN]
HAVING 
    (COUNT([column1]) > 1) AND 
    (COUNT([column2]) > 1) AND
    (COUNT([columnN]) > 1);

Practical example

To show how to find duplicated values in multiple columns, we will use the following table:

MS SQL Server - example data used to find duplicated values in multiple columns
MS SQL Server - example data used to find duplicated values in multiple columns

Note:

At the end of this article you can find database preparation SQL queries.

Example

In this example, we will display duplicated users and countries where:

  • name_quantity - number of duplicated names,
  • country_quantity - number of duplicated countries.

Note:

This works only when both name and country in a row are duplicated.

Query:

SELECT 
    [name], COUNT([name]) AS 'name_quantity',
    [country], COUNT([country]) AS 'country_quantity'
FROM
    [users]
GROUP BY 
    [name],
    [country]
HAVING 
    (COUNT([name]) > 1) AND 
    (COUNT([country]) > 1);

Result:

MS SQL Server - find and count duplicated values in multiple columns - result
MS SQL Server - find and count duplicated values in multiple columns - results

Note:

Notice that Chris user both name_quantity and country_quantity equals 2 because one user is from a different country.

Database preparation

create_tables.sql file:

CREATE TABLE [users] (
	[id] INT IDENTITY(1,1),
	[name] VARCHAR(100) NOT NULL,
	[email] VARCHAR(100) NOT NULL,
	[country] VARCHAR(15) NOT NULL,
	PRIMARY KEY ([id])
);

insert_data.sql file:

INSERT INTO [users]
	([name], [email], [country])
VALUES
	('Tom', 'tom1@email.com', 'Poland'),
	('Tom', 'tom2@email.com', 'Poland'),
    ('Tom', 'tom3@email.com', 'Poland'),
    ('Kim', 'kim1@email.com', 'Vietnam'),
    ('Kim', 'kim2@email.com', 'Vietnam'),
    ('Chris', 'chris1@email.com', 'Spain'),
	('Chris', 'chris2@email.com', 'Spain'),
	('Chris', 'chris3@email.com', 'USA');

MS SQL Server - problems

MS SQL Server - find duplicated values in multiple columns
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join