In the above table, we can find duplicate row using below query.
SELECT name, section FROM tbl GROUP BY name, section HAVING COUNT(*) > 1
Given a table named PERSON task is to write an SQL query to find all duplicate name in the table.
+----+---------+ | Id | NAME | +----+---------+ | 1 | Geeks | | 2 | for | | 3 | Geeks | +----+---------+ Output : +---------+ | NAME | +---------+ | Geeks | +---------+
The simple approach is to make a temporary table which have count of all the names in a table.
Duplicated NAME existed more than one time, so to count the times each NAME exists, we can use the following code:
select NAME, count(NAME) as num from Person group by NAME;
| NAME | num | |---------|-----| | Geeks | 2 | | for | 1 |
This is a temporary table, on which we can run the below code to get duplicate NAME.
select NAME from ( select NAME, count(NAME) as num from Person group by NAME ) as statistic where num > 1;
The Best approach is to use GROUP BY and HAVING condition. It is more effective and faster then previous.
select NAME from Person group by NAME having count(NAME) > 1;
This article is contributed by Sahil Rajput. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Please Login to comment...