【发布时间】:2016-01-05 18:40:31
【问题描述】:
我试图找到某个字段为空的第一行,但需要注意的是后面不能有非空。如果没有空值或非空值出现在空值之后,那么我根本不想返回那个值。我正在使用 Teradata SQL,下面的模拟数据集应该可以说明我在寻找什么。
ID | Date | Field_Of_Interest
A | 1/1/2015 | 1
A | 2/1/2015 | 1
A | 3/1/2015 |
A | 4/1/2015 |
A | 5/1/2015 |
B | 1/1/2015 | 1
B | 2/1/2015 | 1
B | 3/1/2015 |
B | 4/1/2015 | 1
B | 5/1/2015 |
C | 1/1/2015 | 1
C | 2/1/2015 | 1
C | 3/1/2015 | 1
C | 4/1/2015 | 1
C | 5/1/2015 | 1
D | 1/1/2015 | 1
D | 2/1/2015 | 1
D | 3/1/2015 |
D | 4/1/2015 |
D | 5/1/2015 | 1
期望的结果:
ID | Date
A | 3/1/2015
B | 5/1/2015
由于 C 和 D 的最后一条记录为非空值,所以我不希望它们全部。
在 B 或 D 之类的情况下,我不能只取 Field_Of_Interest 为空的日期字段的最小值。我的另一个想法是找到 null 的最小值和非 null 的最大值,如果最小值的日期大于最大值的日期,请使用它。问题在于 B 中的非空值出现在空值之后,然后又返回空值。
有什么想法吗?
【问题讨论】: