【问题标题】:Remove duplicates rows based on duplicate column entries根据重复的列条目删除重复的行
【发布时间】:2023-01-11 02:43:52
【问题描述】:

我有下表,我会根据重复列的条目删除重复项。

因此,在下表(运行代码片段)中,“createdon”字段 07/04/2022 15:39:40.0000000 和“Id”字段中存在重复项。

有没有办法删除基于选定字段的重复项?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" />
<title>Export Data</title>
<style type="text/css">
.h {
color:Black;
font-family:Tahoma;
font-size:8pt;
}
table {
border-collapse:collapse;
border-width:1px;
border-style:solid;
border-color:Silver;
padding:3px;
}
td {
border-width:1px;
border-style:solid;
border-color:Silver;
padding:3px;
}
.rh {
background-color:White;
vertical-align:Top;
color:Black;
font-family:Tahoma;
font-size:8pt;
text-align:Left;
}
.rt {
background-color:White;
vertical-align:Top;
color:Black;
font-family:Tahoma;
font-size:8pt;
text-align:Left;
}
</style>
</head>
<bodybgColor=White>
<p class="h"></p>
<table cellspacing="0">

<tr class="rh">
<td>Id</td>
<td>SinkCreatedOn</td>
<td>SinkModifiedOn</td>
<td>createdon</td>
</tr>

<tr class="rt">
<td>AC28CA8A-80B6-EC11-983F-0022480078D3</td>
<td>15/12/2022 14:02:51</td>
<td>15/12/2022 14:02:51</td>
<td>07/04/2022 15:39:40</td>
</tr>

<tr class="rt">
<td>AC28CA8A-80B6-EC11-983F-0022480078D3</td>
<td>16/12/2022 18:30:59</td>
<td>16/12/2022 18:30:59</td>
<td>07/04/2022 15:39:40</td>
</tr>

<tr class="rt">
<td>AC28CA8A-80B6-EC11-983F-0022480078D3</td>
<td>16/12/2022 18:55:04</td>
<td>16/12/2022 18:55:04</td>
<td>07/04/2022 15:39:40</td>
</tr>

<tr class="rt">
<td>AC28CA8A-80B6-EC11-983F-0022480078D3</td>
<td>20/12/2022 16:26:45</td>
<td>20/12/2022 16:26:45</td>
<td>07/04/2022 15:39:40</td>
</tr>

<tr class="rt">
<td>AC28CA8A-80B6-EC11-983F-0022480078D3</td>
<td>22/12/2022 17:27:45</td>
<td>22/12/2022 17:27:45</td>
<td>07/04/2022 15:39:40</td>
</tr>

<tr class="rt">
<td>AC28CA8A-80B6-EC11-983F-0022480078D3</td>
<td>22/12/2022 17:57:48</td>
<td>22/12/2022 17:57:48</td>
<td>07/04/2022 15:39:40</td>
</tr>

</table>
<p class="h"></p>
</body>
</html>

【问题讨论】:

  • “删除重复项”是什么意思 - 没有重复行,您期望的结果是什么?
  • 请不要将 html sn-p 用于示例数据。 Stack Overflow 支持降价表,更好的是你可以在代码围栏中提供 DDL 和 DML。

标签: sql sql-server tsql


【解决方案1】:

这是一种方法:

with dups as ( 
   select * , row_number() over (partition by ID,CreatedOn order by SinkCreatedOn) rn
   from table1
) 

delete from dups where rn > 1

通过更改 order by 列/方向,您可以管理要保留的行

【讨论】:

    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 2021-11-04
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2021-04-02
    • 2019-05-29
    相关资源
    最近更新 更多