删除重复行的 SQL 查询
通过本文,我们将学习如何从数据库表中删除重复的行。正如我们所知,我们数据库中的重复性往往会浪费内存空间。它记录了不准确的数据,也无法从数据库中取出正确的数据。
One or more rows that have identical or the same data value are considered to be Duplicate rows.
现在,我们必须按照以下步骤完成任务-
第 1 步:首先我们必须创建一个名为“DETAILS”的表 -
询问:
CREATE TABLE DETAILS
( SN INT IDENTITY(1,1)
EMPNAME VARCHAR(25),
DEPT VARCHAR(20),
CONTACTNO BIGINT NOT NULL,
CITY VARCHAR(15)
);
第 2 步:现在,我们必须在表中插入值或数据。
INSERT INTO EMPDETAIL
VALUES ('VISHAL','SALES',9193458625,'GAZIABAD'),
('VIPIN','MANAGER',7352158944,'BARIELLY'),
('ROHIT','IT',7830246946,'KANPUR'),
('RAHUL','MARKETING',9635688441,'MEERUT'),
('SANJAY','SALES',9149335694,'MORADABAD'),
('VIPIN','MANAGER',7352158944,'BARIELLY'),
('VISHAL','SALES',9193458625,'GAZIABAD'),
('AMAN','IT',78359941265,'RAMPUR');
输出:插入值后我们有一个表格视图:
第 3 步:在这一步中,我们必须找出重复的行数。
询问:
SELECT EMPNAME,DEPT,CONTACTNO,CITY, COUNT(*) FROM EMPDETAIL
GROUP BY EMPNAME,DEPT,CONTACTNO,CITY
HAVING COUNT(*)>1
输出:
第 4 步:您还可以使用此行找出唯一行。
SELECT EMPNAME,DEPT,CONTACTNO,CITY, COUNT(*) FROM DETAILS
GROUP BY EMPNAME,DEPT,CONTACTNO,CITY
第 5 步:最后,我们必须从数据库中删除重复的行。
DELETE FROM DETAILS WHERE SN NOT IN (
SELECT MAX(SN) FROM DETAILS GROUP BY EMPNAME,DEPT,CONTACTNO,CITY)
第6步:删除重复行后,我们就有了表的视图:
输出: