gpt4 book ai didi

sql - 如何使用 postgres 中的窗口函数选择特定更改

转载 作者:行者123 更新时间:2023-11-29 11:42:13 26 4
gpt4 key购买 nike

我有一个包含一些外键的表,我需要获取这些键何时更改的报告。

from | to | timestamp   1 |  2 | 0000   1 |  2 | 0001   1 |  2 | 0002   1 |  3 | 0003   1 |  3 | 0004   1 |  2 | 0005

SELECT from,to,FIRST(timestamp) FROM table GROUP BY from,to;

from | to | timestamp   1 |  2 | 0000   1 |  3 | 0003

我可以通过分组来获得前两个过渡,但它将第三个与第一个分组在一起,当它返回时我看不到它。

我想进行如下查询:

from | to | timestamp   1 |  2 | 0000   1 |  3 | 0003   1 |  2 | 0005

这可能吗?

最佳答案

在 PostgreSQL 8.4 中,您可以使用窗口函数 LAG访问上一行并比较它是否具有相同的“from”和“to”值:

SELECT "from", "to", timestamp
FROM
(
SELECT
"from",
"to",
timestamp,
LAG(("from", "to")) OVER (ORDER BY timestamp) AS prev
FROM Table1
) T1
WHERE ("from", "to") IS DISTINCT FROM prev

结果:

from  to    timestamp1     2     0000        1     3     0003        1     2     0005    

关于sql - 如何使用 postgres 中的窗口函数选择特定更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3764498/

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