gpt4 book ai didi

用于按顺序提取记录的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 12:35:27 25 4
gpt4 key购买 nike

PostgreSQL 9.4

我想根据日期提取顺序为 ON > WAIT > OFF 的记录。在这种情况下,结果应该只返回键为 1 的记录。

表格

    key  state  date
1 ON 1/1/2018
1 WAIT 1/2/2018
2 ON 1/1/2018
2 OFF 1/2/2018
1 OFF 1/3/2018

最佳答案

您可以使用 window functions例如 LEADLAG 在这种情况下:

SELECT  "key"
FROM
(
SELECT "key", "state", "date",
LAG("state") OVER (PARTITION BY "key" ORDER BY date ASC) LAG_STATE,
LEAD("state") OVER (PARTITION BY "key" ORDER BY date ASC) LEAD_STATE
FROM Table1
) AS a
WHERE LAG_STATE = 'ON'
AND state = 'WAIT'
AND LEAD_STATE = 'OFF'

这是一个 DEMO .

关于用于按顺序提取记录的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48556477/

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