相关疑难解决方法(0)

从表中删除具有相同 ID 的重复行

我有一个表 Emp 其中有这样的记录

Id     Name
1      A
2      B
3      C
1      A
1      A
2      B
3      C
Run Code Online (Sandbox Code Playgroud)

现在我想从表中删除重复行我正在使用此查询来选择或计算重复记录的数量

SELECT NameCol, COUNT(*) as TotalCount FROM TestTable 
GROUP BY NameCol HAVING COUNT(*) > 1 
ORDER BY COUNT(*) DESC
Run Code Online (Sandbox Code Playgroud)

我应该编写什么查询来删除表中的重复行。

如果我编写此查询来删除重复记录,那么它会给出结果(0) row Affected

`DELETE FROM TestTable 
    WHERE ID NOT IN ( SELECT MAX(ID) FROM 
                                     TestTable 
                                     GROUP BY NameCol
                    )`
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

4
推荐指数
1
解决办法
2万
查看次数

sql server 2008删除重复项

我有这样的重复

col1, col2
1, alex
1, alex
2, liza
2, liza
3, peter
3, peter
Run Code Online (Sandbox Code Playgroud)

每个只有两个.我该如何删除重复项?

sql sql-server sql-server-2008

3
推荐指数
1
解决办法
1386
查看次数

删除表中的重复条目

我想删除下表中的多个重复键:

id | name   | uid
1  | ekta   | 5
2  | ekta   | 5
3  | sharma | 10
4  | sharma | 10
Run Code Online (Sandbox Code Playgroud)

希望它像

id | name   | uid
1  | ekta   | 5
3  | sharma | 10
Run Code Online (Sandbox Code Playgroud)

我正在使用mysql.可能吗?我无法使用 unique constraint查询来创建唯一的输入,因为我希望将这些重复的条目输入到表中.

mysql sql stored-procedures sql-delete

3
推荐指数
1
解决办法
1030
查看次数

删除基于Group By - SQL的重复项

编辑:我想我现在有解决方案,但需要做一些更有意义的检查......

DELETE TBLFIRE_TEMP3 FROM TBLFIRE_TEMP3
LEFT OUTER JOIN (
   SELECT MIN(FireNo) as FireNo, ActionRef, FRADate, FIREUPRN
   FROM TBLFIRE_TEMP3 
   GROUP BY ActionRef, FRADate, FIREUPRN
) as KeepRows ON
   TBLFIRE_TEMP3.FireNo = KeepRows.FireNo
WHERE
   KeepRows.FireNo IS NULL
Run Code Online (Sandbox Code Playgroud)

- ###############上一条评论###############

我有一个表有重复(基于三列).我可以通过执行以下操作找到它们并查看它们然后只是想删除重复项(即所有计数(*)结果都是'1')

SELECT COUNT(*),ActionRef, FRADate, FIREUPRN
FROM TBLTempTable
GROUP BY ActionRef, FRADate, FIREUPRN
Run Code Online (Sandbox Code Playgroud)

所以我可以看到这些群体发生的次数.我想要做的是删除重复项.我已经尝试了以下但它删除了每一行,甚至是单数:

DELETE a FROM TblTempTable a JOIN
(
  SELECT ActionRef, FRADate, FIREUPRN
    FROM TblTempTable 
   GROUP BY ActionRef, FRADate, FIREUPRN
) d 
   ON (a.ActionRef = b.ActionRef
  AND a.FRADate = b.FRADate
AND a.FIREUPRN = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server duplicate-data group-by

3
推荐指数
1
解决办法
2335
查看次数

删除重复记录而不使用ROW_NUMBER()函数

我想删除重复记录而不使用ROW_NUMBER()函数(SQL Server)

示例:包含以下数据的表:

name     salary
-----------------
Husain   20000.00
Husain   20000.00
Husain   20000.00
Munavvar 50000.00
Munavvar 50000.00
Run Code Online (Sandbox Code Playgroud)

删除重复记录表后应包含如下数据:

name     salary
-----------------
Husain   20000.00
Munavvar 50000.00
Run Code Online (Sandbox Code Playgroud)

sql sql-server

3
推荐指数
1
解决办法
5680
查看次数

2
推荐指数
1
解决办法
1577
查看次数

删除重复的行 - 无法找到决定性的答案

你马上就会想我直接去这里问我的问题,但我搜索了很多东西,没有找到一个决定性的答案.

事实:我有一张包含330万行,20列的表格.第一行是主键,因此是唯一的.

我必须删除列2到列11重复的所有行.实际上是一个基本问题,但是有很多不同的方法,而每个人最终都寻求相同的解决方案,删除重复.

我个人在考虑GROUP BY HAVING COUNT(*)> 1这是要走的路还是你的建议?

非常感谢提前!大号

sql t-sql sql-server sql-server-2005 sql-server-2008

2
推荐指数
1
解决办法
2070
查看次数

如果没有唯一键,如何删除sybase中的重复行?

是的,你可以多次找到类似的问题,但是:这里发布的最优雅的解决方案适用于SQL Server,但不适用于Sybase(在我的案例中是Sybase Anywhere 11).我甚至发现一些与Sybase相关的问题被标记为SQL Server问题的重复,这没有帮助.

我喜欢但不起作用的解决方案的一个例子是WITH ... DELETE ...构造.

我找到了使用游标或while循环的工作解决方案,但我希望没有循环可能.

我希望有一个漂亮,简单和快速的查询,只删除除了一个完全重复的所有内容.

这里有一个小测试框架:

IF OBJECT_ID( 'tempdb..#TestTable' ) IS NOT NULL
  DROP TABLE #TestTable;

CREATE TABLE #TestTable (Column1 varchar(1), Column2 int);

INSERT INTO #TestTable VALUES ('A', 1);
INSERT INTO #TestTable VALUES ('A', 1); -- duplicate
INSERT INTO #TestTable VALUES ('A', 1); -- duplicate
INSERT INTO #TestTable VALUES ('A', 2);
INSERT INTO #TestTable VALUES ('B', 1);
INSERT INTO #TestTable VALUES ('B', 2);
INSERT INTO #TestTable VALUES ('B', 2); -- duplicate
INSERT …
Run Code Online (Sandbox Code Playgroud)

sql sybase sqlanywhere duplicate-removal

2
推荐指数
1
解决办法
2万
查看次数

删除重复行SQL服务器

我正在使用SQL Server.我创建的SQL表有20000多行.我有使用以下查询过滤重复.

SELECT
    Entity,ExpenseType,Amount,Description,APSupplierID,ExpenseReportID,Employee,ExpenseDate,COUNT(*)
FROM
    TotalsByGLCenter
GROUP BY
    Entity,ExpenseType,Amount,Description,APSupplierID,ExpenseReportID,Employee,ExpenseDate
HAVING 
    COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)

现在我想从SQL Server删除Duplicate如何添加删除以上查询?

sql sql-server

2
推荐指数
1
解决办法
123
查看次数

从SQL Server表中删除重复项

我的SQL Server表中有一个情况,我有许多重复的记录,如下所示:

 SID    Username                                InQueue
------------------------------------------------------------------    
 162    peeeer2  492    2017-01-18 12:20:21.820   0    354
2791    peeeer2  460    2017-01-11 00:00:00.000   1    NULL
Run Code Online (Sandbox Code Playgroud)

这里不需要的记录是我设置的peeeer2用户InQueue = true.我需要删除InQueue列设置为1的所有重复项,另一个标准是用户名实际上是重复的...

表名是SearchedUsernames:

delete from SearchedUsernames
where Username ??
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

编辑:

@TimSchmelter ty这么多,这就像一个魅力.但是我仍然收到错误.我需要首先删除此表的相邻FK.例如,当我在邻居表中有一个名为UserTransactions的相应FK记录时,如下所示:

 ID      SID                              
----------------  
 162    162
2791    2791    
Run Code Online (Sandbox Code Playgroud)

我需要首先删除此邻居表中的所有记录,然后使用您编写的查询删除重复项.但是,这次我只想删除那些有重复记录且设置InQueue = 0的那些;

所以场景看起来像这样:

  1. 从相邻表UserTransactions中的两个重复项中删除FK记录SID

  2. 然后执行DTV&Tim写的稍微更改的查询,只删除那些重复且设置了InQueue = 0的记录;

sql sql-server distinct duplicates sql-delete

2
推荐指数
1
解决办法
157
查看次数