【发布时间】:2019-12-15 20:30:53
【问题描述】:
我有三列数据。一列有 ID,第二列有日期,第三列有 BMI 值。我想创建第四列,该列具有基于日期(升序)的第一列,第三列不为空或避免为空。
到目前为止,我已经尝试过以普通形式的 first_value,但它不起作用。我尝试在 case when 语句中设置 first_value 子集为
CASE
WHEN BMI IS NOT NULL THEN (FIRST_VALUE(BMI) OVER PARTITION BY PID ORDER BY DATE))
ELSE 0
END AS FIRSTNOTNULLVALUE_BMI
给我0。
id date BMI
1 2000-01-01 NULL
1 2003-05-01 18.1
1 2002-07-15 25.8
2 2009-09-25 NULL
2 2015-04-18 23.5
有什么建议吗??
【问题讨论】:
-
发布样本数据和预期结果以澄清。
-
请用您正在使用的数据库标记您的问题:mysql、sql-server、postgresql...?
-
发布了示例数据并为数据库添加了标签。
-
您的样本数据在 BMI 中不包含任何空值。发布带有空值和预期结果的样本数据。
-
另外Mysql和SQLite也不一样。仅标记您使用的数据库。