📜  删除重复行的 SQL 查询

📅  最后修改于: 2022-05-13 01:55:00.990000             🧑  作者: Mango

删除重复行的 SQL 查询

通过本文,我们将学习如何从数据库表中删除重复的行。正如我们所知,我们数据库中的重复性往往会浪费内存空间。它记录了不准确的数据,也无法从数据库中取出正确的数据。

现在,我们必须按照以下步骤完成任务-

第 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步:删除重复行后,我们就有了表的视图:

输出: