It is very easy to delete duplicate record from table in sql server. SQL
Server always stores each tupple (Row) as unique into the table.
To see duplicate record, we can use the count function with group by
clause with having in the condition.
To delete the record to Max function
with NOT IN keyword.
Just execute and see how it work to delete duplicate record into table.
USE tempdb
GO
CREATE TABLE Jainendra_TestTable (My_ID INT, Rank_Col VARCHAR(50))
Go
INSERT INTO Jainendra_TestTable (My_ID, Rank_Col)
SELECT 1, 'First'
UNION ALL
SELECT 2, 'No Rank'
UNION ALL
SELECT 3, 'Second'
UNION ALL
SELECT 4, 'Second'
UNION ALL
SELECT 5, 'Second'
UNION ALL
SELECT 6, 'Third'
UNION ALL
SELECT 7, 'Five'
UNION ALL
SELECT 8, 'Second'
UNION ALL
SELECT 9, 'Five'
UNION ALL
SELECT 10, 'Nine'
UNION ALL
SELECT 11, 'Third'
GO
-- See the inserted data in create table
SELECT *
FROM
Jainendra_TestTable
GO
-- Now below query is detecting duplicate records into table
SELECT Rank_Col, COUNT(*) TotalCount
FROM
Jainendra_TestTable GROUP BY Rank_Col
HAVING COUNT(*) > 1 ORDER BY COUNT(*) DESC
GO
-- Now below query is deleting the duplicate record into table
DELETE FROM Jainendra_TestTable
WHERE My_ID NOT IN
( SELECT MAX(My_ID) FROM Jainendra_TestTable GROUP
BY Rank_Col)
GO
-- Selecting Data
SELECT *
FROM
Jainendra_TestTable
GO
DROP TABLE Jainendra_TestTable
GO
If it is useful than please like and share it to other
SQL Server learners
No comments:
Post a Comment
Thank You !!!!