我有这种类型的数据。我想要InqNo
唯一且来自多个InqNo
最后一行的数据(对于InqNo
84,它只来自三行中的一行Conversationid
为175)。最后输出就像这样。
我想在SQL中进行简单的查询。
答案 0 :(得分:0)
试试这个
with cte as (
select [foo], [bar],
row_number() over (partition by column1, column2 order by column3 ) as [rn]
from table
)
delete cte where [rn] > 1
答案 1 :(得分:0)
一种可能的解决方案是使用row_number()
排名功能:
;with tblDel as
(
select row_number() over (partition by InqNo order by conversionId desc) as rn
, tbl.*
from tbl
)
delete tblDel
where rn > 1
row_number()
为分区中的每一行分配唯一的序号(分区由具有相同InqNo
的行组成),每个分区中的最后一行始终分配1(在分区行内按{降序排序} {1}})。将删除其分区中不是最后一行的所有行(converionId
大于1的行。)