gpt4 book ai didi

sql - 如何在 PostgreSQL 中获取每条具有特定属性集的记录之后的第一条记录?

转载 作者:行者123 更新时间:2023-11-29 14:07:07 24 4
gpt4 key购买 nike

我有一个表,其中一些记录的特定属性设置为非空值。我想获取这些记录之后的所有记录(按 created_at 列排序)。

这是示例数据:

id | factor | created_at
1 | NULL | 2001-01-01
2 | 1.2 | 2001-01-02
3 | NULL | 2001-01-03
4 | NULL | 2001-01-04
5 | 0.9 | 2001-01-05
6 | NULL | 2001-01-06
7 | 1.1 | 2001-01-07
8 | NULL | 2001-01-08
9 | NULL | 2001-01-09
10 | 1.1 | 2001-01-10
11 | NULL | 2001-01-11

等等。在这种情况下,我想获取 ID 为 3、6、8 和 11 的记录。在 PostgreSQL 9.3 中是否可能以某种方式实现?在真实的应用程序中,ids 不一定是连续的 - 还有 user_id 列,我只获取具有相同 user_id 值的记录。我已经阅读了一些关于 LEAD 窗口函数的内容,它可能在这里很有用,但我不确定在这种情况下如何使用它。

最佳答案

尝试:

select id, factor, created_at
from (select id,
factor,
created_at,
lag(factor, 1) over(order by created_at) as prev_factor
from tbl
order by created_at) x
where factor is null
and prev_factor is not null

关于sql - 如何在 PostgreSQL 中获取每条具有特定属性集的记录之后的第一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com