【发布时间】:2016-05-26 21:01:35
【问题描述】:
假设我有下表:
| User_id | COL1 | COL2 |
+---------+----------+------+
| 1 | | 1 |
| 1 | | 2 |
| 1 | 2421 | |
| 1 | | 1 |
| 1 | 3542 | |
| 2 | | 1 |
我需要另一列来指示每一行的下一个非空 COL1 值,因此结果如下所示:
| User_id | COL1 | COL2 | COL3 |
+---------+----------+------+------
| 1 | | 1 | 2421 |
| 1 | | 2 | 2421 |
| 1 | 2421 | | |
| 1 | | 1 | 3542 |
| 1 | 3542 | | |
| 2 | | 1 | |
SELECT
first_value(COL1 ignore nulls) over (partition by user_id order by COL2 rows unbounded following)
FROM table;
可以,但我使用的是不支持忽略 null 子句的 PostgreSQL。
有什么建议的解决方法吗?
【问题讨论】:
-
您需要一列来指定排序。 SQL 表本质上是无序的。
标签: sql postgresql