mysql - 缺失记录的引导功能
问题描述
我正在使用以下查询
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)
任何人都可以帮我解决上述问题。
解决方案
除了建议的解决方案,如果您仍然想坚持 Lead 功能,
引导函数分析具有值的数据,它的结果可以基于分区具有空值,但它用于分析的数据应该具有值。在我看来,您所做的是将缺失的序列包含在结果中是正确的。
http://www.mysqltutorial.org/mysql-window-functions/mysql-lead-function/
推荐阅读
- xamarin - 如何在 Xamarin.Android 构建中避免异常“在路径 /android/gms/R.java 和 /android/gms/base.R.java 上共享冲突”?
- python - Python Paramiko 未按正确顺序显示命令输出
- android - 为小部件保存数据
- c# - ConcurrentDictionary.ForEach 去哪儿了?
- reactjs - 我收到警告“警告:列表中的每个孩子都应该有一个唯一的“关键”道具。” 在反应js
- java - 在 Git 中为单元测试创建一个新分支是一种好习惯吗?
- azure-devops-rest-api - 使用 REST API 将构建链接添加到工作项
- c - 为什么 STDIN 不退出中断?
- c++ - 使用浮点数和双精度数非常小的数学
- php - PHPSESSID 在每次刷新时都会不断变化