gpt4 book ai didi

sql - 将行插入到列没有重复值的临时表中

转载 作者:行者123 更新时间:2023-12-05 09:16:37 24 4
gpt4 key购买 nike

我有成百上千 strip 有序列号的记录。由于记录保存不善,其中许多在其他记录中重复。

我们现在正在对这些记录做一些事情,但我们只希望新表中的记录具有唯一的序列号。所以重复的行应该被忽略,我们稍后会处理重复的行。

(原始表也没有主键列,这就是我们将其注入(inject)临时表的原因)

declare @total int = 603578;
declare @cnt int = 1;

create table #Temp
(
Id int IDENTITY(1,1),
FirstName nvarchar(30),
LastName nvarchar(30),
SerialNumber varchar(254),
...
)

while @cnt < @total
insert into #Temp SELECT * FROM electronic_list;

我希望能够添加一些简单的东西,比如:

where SerialNumber is unique

where SerialNumber is distinct

但是好像没有那么简单。我尝试过使用 select distinct、select count with group by 和 having 等不同的方法,但我似乎无法获得我想要的结果。

似乎有很多方法可以找到重复项,但很难找到忽略它们的方法。

最佳答案

为什么不使用 window 函数?

select * from (
select *,
count(SerialNumber) over (partition by SerialNumber) Counts
from electronic_list
) t
where Counts = @cnt;

但是,这只会选择 SerialNumber,正如您的 @cnt 参数所建议的那样,它只有 1 条记录。

关于sql - 将行插入到列没有重复值的临时表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49976440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com