我想从我的表中删除重复的accountno's。选择删除重复的帐号并包括其他字段
SELECT ACCOUNTNO,日期时间,发送resultCode,楼盘 FROM dbo.Most_Recent_Result
我曾尝试不同的,但裁判的一些行的不同。
如何删除重复的accountno?我只想删除第二个匹配的accountno记录。
我想从我的表中删除重复的accountno's。选择删除重复的帐号并包括其他字段
SELECT ACCOUNTNO,日期时间,发送resultCode,楼盘 FROM dbo.Most_Recent_Result
我曾尝试不同的,但裁判的一些行的不同。
如何删除重复的accountno?我只想删除第二个匹配的accountno记录。
SELECT DISTINCT ACCOUNTNO, DateTime, RESULTCODE, REF
FROM dbo.datetime as o
LEFT JOIN (SELECT ACCOUNTNO, MAX(datetime) AS max_datetime
FROM dbo.datetime GROUP BY ACCOUNTNO) i ON o.ACCOUNTNO = i.ACCOUNTNO
WHERE o.DateTime = i.max_datetime
这假定每个ACCOUNTNO重复条目,没有存在具有相同日期时间,否则你仍然会得到重复。
编辑:由于您的数据具有多个具有相同日期的ACCOUNTNO,此时您可以添加DISTINCT关键字。这将删除对每个ACCOUNTNO
EDIT 2的最大日期的重复:如果你不关心它的ResultCode和REF域将显示,你可以使用聚合函数来获取只有一个:
SELECT DISTINCT o.ACCOUNTNO, o.DateTime, MAX(o.RESULTCODE), MAX(o.REF)
FROM dbo.datetime as o
LEFT JOIN (SELECT ACCOUNTNO, MAX(datetime) AS max_datetime
FROM dbo.datetime GROUP BY ACCOUNTNO) i ON o.ACCOUNTNO = i.ACCOUNTNO
WHERE o.DateTime = i.max_datetime
GROUP BY o.ACCOUNTNO, o.DateTime
ORDER BY ACCOUNTNO
请试试这个:
select accountno, datetime, resultcode, ref
from (
select dense_rank() over (partition by accountno order by datetime desc, ref) as rn
,accountno, datetime, resultcode, ref
from dto.datetime
)
where rn = 1
order by 1,2
这是我reference。
收到以下错误: – SRC
无法在网格窗格和图表窗格中表示SQL文本。 – SRC
这个错误是由于视图设计者本身。查看此链接:https://social.msdn.microsoft.com/Forums/en-US/e3036b3d-0f61-4aec-a879-f6602e86515b/sql-server-2008-management-studios-why-do-i-get -SQL-文本不能待表示,在能源网窗格?论坛= sqltools – anonyXmous
这将有助于知道您正在使用的数据库。 - MySQL? PostgreSQL的? SQL Server? etc ... –
我正在使用SQL Server 2014 – SRC
查看数据表的示例也很有帮助。据我了解,你有多个ACCOUNTNO条目与各种日期时间,你想只保留最近的日期时间,这是正确的吗? – SandPiper