gpt4 book ai didi

mysql - 缺失记录的引导功能

转载 作者:行者123 更新时间:2023-11-29 16:03:47 27 4
gpt4 key购买 nike

我正在使用以下查询

 select  id,
number_sequ,
startvalue
lead(startvalue,1,0) over (partition by id order by number_sequ) AS End_value
from mytable

填充以下输出

id             number_sequ   startvalue       End_value
---- ----- ---------- -----------
AAA 1 30 20
AAA 2 20 10
AAA 4 10 15
AAA 5 15 0
BBB 1 12 23
BBB 3 23 34
BBB 4 34 0

但顺序上有缺失的记录

id         number_sequ   startvalue       End_value
---- ----- ---------- -----------
AAA 3
BBB 2

我尝试了不同的方法来找出序列中缺失的数字,并尝试插入 0 值。之后我可以使用引导功能。找不到有效的方法

INSERT INTO mytable (id, number_sequ, startvalue)
select id ,number_sequ ,'0'
from mytable
where (some condition to specify missing data)

谁能帮我解决上述问题。

最佳答案

您可以通过以下方法获取缺失值:生成所有可能的值,然后过滤掉存在的值。

select i.id, n.n, 0 as start_value
from (select id, min(number_seq) as min_ns, max(number_seq) as max_ns
from mytable
group by id
) i join
(select row_number() over (partition by number_seq) as n
from mytable
) n
on n.n <= i.max_ns left join -- just a bunch of numbers
mytable t
on t.id = i.id and
t.number_seq = n.n
where t.id is null;

您可以在select之前弹出insert,将这些值插入到表中。

请注意,这会使用原始数据生成您需要的序列号。因此它假设您的表有足够的行来容纳您需要的数字。

关于mysql - 缺失记录的引导功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55932945/

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