当前位置: 首页 > 面试题库 >

通过SQL Server使用分区删除重复项

苏选
2023-03-14
问题内容

我需要从表中删除重复项:

;WITH cte as(
SELECT ROW_NUMBER() OVER (PARTITION BY [specimen id]
                                       ORDER BY ( SELECT 0 ) ) RN
         FROM   quicklabdump)
        delete from cte where RN>1

该列quicklabdumpID是主键。

我想知道如何quicklabdumpID在有多次出现的情况下仅保留最大的[specimen id]


问题答案:

将订单更改为quicklabdumpid DESC

WITH cte as(
  SELECT ROW_NUMBER() OVER (PARTITION BY [specimen id]
                            ORDER BY  quicklabdumpid DESC ) RN
  FROM   quicklabdump)
delete from cte where RN>1


 类似资料:
  • 我还有一个快速的SQL问题。考虑下表: 你看,这是一个特殊的情况。有些情况下,Value2和Value3都在一个条目中设置,有些情况下,Value2和Value3都设置了,有些情况下,它们都没有设置(没有重复项)。 所以问题是:如何删除重复项(通过Value1)并获得信息最多的条目?即,如果设置了Value2和/或Value3,则设置了这些条目。显然,我不能只使用“not null”,因为有些情况

  • 我有一个整数和零的列表。我想只过滤掉Nones。 这将删除None,但也删除0(整数)。我想以保持0(整数)的方式修改它 结果是一个列表[1,0,1,0,1,0,1,0]--

  • 问题内容: 这个问题已经在这里有了答案 : SQL中的TRUNCATE和DELETE有什么区别 (32个答案) TRUNCATE vs DELETE FROM的利弊 (11个答案) 6年前关闭。 关于mysql / sqlserver,我的脑海里发生了一件事,即 删除/截断 哪个更好更快? 在哪里使用删除? 在哪里使用截断? 问题答案: 删除 DELETE是DML命令。 使用行锁执行DELETE语

  • 请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得

  • 根据下面的php代码,输出为 我理解&$ref是通过引用传递的。但在赋值之后类似($row=&$ref;)在任何地方,每当“row”更改值时,“ref”也会更改为与“row”相同的值。真的很迷惑。似乎=不仅将右值赋给左值。有人能核实一下吗?