您可以使用row\u number()
为每对保留一行:
with todelete as (
select t.*,
row_number() over (partition by keyname, data order by (select NULL)) as seqnum
from t
)
delete
from todelete
where seqnum > 1;
与任何此类操作一样,删除前应先检查。这很简单:
with todelete as (
select t.*,
row_number() over (partition by keyname, data order by (select NULL)) as seqnum
from t
)
select *
from todelete
where seqnum > 1;
这应该可以
WITH CTE
AS (SELECT KeyName
, Number
, Data
, [rn] = ROW_NUMBER() OVER(PARTITION BY KeyName
, Data ORDER BY KeyName
, Data)
FROM yourtable)
/* UNCOMMENT BELOW TO DELETE */
--DELETE
--FROM CTE
--WHERE rn > 1;
SELECT *
FROM CTE
WHERE rn > 1;
问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: Python:如何查找列表交集? 我在.txt中有两个数据列表 我想找出在两个列表中都出现的名字。我该怎么做? 问题答案: 使用集: 该运营商表示“给我这两个集合的交集” 或者,您可以使用以下方法:
当我控制台下面的两个数组是如何看 在两个数组中,349都是匹配的,匹配后应返回1。下面是我如何尝试的 它不匹配任何人都能给出解决方案!!!!
问题内容: 我有一个脚本,它使用DROP TABLE IF EXISTS删除表的负载,这可以工作。 此脚本中还有一个删除操作,用于从我不管理的另一个表中删除一行。该表可能存在或不存在。是否有任何在尝试删除行之前检查该表是否存在? 这需要适用于MYSQL和SQLServer 谢谢亚历克斯 问题答案: 要签入SQL SERVER, 要检查mysql: 您只需数:
问题内容: 我有两个表,并且如果第二个表中存在行的确切副本,则需要从第一个表中删除行。 有没有人举过我如何在MSSQL Server中执行此操作的示例? 问题答案: 好吧,在某个时候,您将必须检查所有列-可能还需要加入… 应该可以做到……还有,但是这只会有所 帮助 -您仍然需要检查实际值以防止哈希冲突。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我有两个火花DF,我需要加入。只选择df1中存在的df2中的值,不应该有重复的行。 例如: df1: df2: 我正在做以下工作: 但是我的输出有几个重复的行。 如果val从df1中删除,我试图实现一个类似except的操作。但是除了之外,
我有下表(TBL_视频),在“TIMESTAMP”中有重复的列条目,我只想在“CAMERA”编号匹配时删除它们。 之前: 之后: 我已尝试此语句,但列不会相应删除。我非常感谢为生成正确的SQL语句所提供的所有帮助。提前谢谢!