我正在努力使这项工作成功。我有一张这样结构的table:
enter code here
|---------------------|------------------|------------------|
| source | updated_date | closed_date |
|---------------------|------------------|------------------|
| RMD | 2019-01-01 | NULL |
|---------------------|------------------|------------------|
| RMD | 2019-01-25 | NULL |
|---------------------|------------------|------------------|
| RMD | 2019-01-29 | 2019-02-05 |
|---------------------|------------------|------------------|
| SRC | 2019-02-15 | NULL |
|---------------------|------------------|------------------|
| SRC | 2019-02-19 | 2019-02-21 |
|---------------------|------------------|------------------|
| SRC | 2019-02-20 | NULL |
|---------------------|------------------|------------------|
| SRC | 2019-02-27 | 2019-02-28 |
|---------------------|------------------|------------------|
我需要返回第一个更新日期和相应的第一个非空关闭日期。
例如,基于上述数据,我想返回以下内容:
|---------------------|------------------|------------------|
| source | updated_date | closed_date |
|---------------------|------------------|------------------|
| RMD | 2019-01-01 | 2019-02-05 |
|---------------------|------------------|------------------|
| SRC | 2019-02-15 | 2019-02-21 |
|---------------------|------------------|------------------|
| SRC | 2019-02-20 | 2019-02-28 |
|---------------------|------------------|------------------|
这对我来说是相当有挑战性的,我正在为得到这份工作而绞尽脑汁。我能得到的最接近的方法是使用self relationship,但我无法做到这一点,因为我无法获得第一个值与第二个值匹配,我也尝试了coalesce,但要么它不适用于这个示例,要么我没有很好地使用它。
有什么好灵魂能给我光明吗?
1条答案
按热度按时间csbfibhn1#
可以使用累积窗口函数和聚合:
这个想法是对
updated_date
将组分配给行。然后基于该组进行聚合。