作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表,其中一些记录的特定属性设置为非空值。我想获取这些记录之后的所有记录(按 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/
我是一名优秀的程序员,十分优秀!