SQL Interview Questions/Removing Duplicate Records :-6
6.HOW TO DELETE THE DUPLICATES RECORDS IN A TABLE.
create table duplicate_records
(
id int,
name varchar(100),
age int,
address varchar(100),
gmail nvarchar(100),
aadhar bigint,
)
insert into duplicate_records values (1,'vinela',34,'nellore','vinni@gmail.com',5547895),
(1,'vinela',34,'nellore','vinni@gmail.com',5547895),
(3,'divya',12,'vijaywada','divya@gmail.com',2345667),
(4,'kavya',12,'kovur','kavya@gmail.com',2123265),
(4,'kavya',12,'kovur','kavya@gmail.com',2123265),
(2,'srivedi',45,'muthukur','srivedi@gmail.com',4563544),
(2,'srivedi',45,'muthukur','srivedi@gmail.com',4563544),
(2,'srivedi',45,'muthukur','srivedi@gmail.com',4563544)
select * from duplicate_records
output:-
method 3:-
SELECT id,name,address,gmail,aadhar
output:-
method 4:-
;WITH CTE
AS (SELECT id,name,age,gmail,address,aadhar,
ROW_NUMBER() OVER(PARTITION BY name
ORDER BY id) AS DuplicateCount
FROM duplicate_records)
SELECT id,name,age,address,gmail,aadhar FROM CTE WHERE DuplicateCount=1 ORER BY id;
output:-
method 5:-
SELECT id,name,age,address,gmail,aadhar FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY name ORDER BY id) AS DuplicateCount FROM duplicate_records) A WHERE DuplicateCount=1
output:-
method 6:-
with cte as ( SELECT *, ROW_NUMBER() OVER(PARTITION BY name ORDER BY id) AS DuplicateCount FROM duplicate_records ) DELETE from cte where DuplicateCount >1
output:-
Comments
Post a Comment