首页 > 解决方案 > 缺失记录的引导功能

问题描述

我正在使用以下查询

 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)

任何人都可以帮我解决上述问题。

标签: mysqlsqlsnowflake-cloud-data-platform

解决方案


除了建议的解决方案,如果您仍然想坚持 Lead 功能,

引导函数分析具有值的数据,它的结果可以基于分区具有空值,但它用于分析的数据应该具有值。在我看来,您所做的是将缺失的序列包含在结果中是正确的。

http://www.mysqltutorial.org/mysql-window-functions/mysql-lead-function/


推荐阅读