gpt4 book ai didi

sql - 条目选择窗口

转载 作者:行者123 更新时间:2023-12-04 15:57:46 25 4
gpt4 key购买 nike

考虑以下(简化的)表格:

ID           NUMBER
PROD_NO VARCHAR2(10)
START_TIME DATE

我想做的是在给定的 START_TIME 前后选择大小为 n 的行的“窗口”。

例子:

ID   PROD_NO   START_TIME
...
42 1234567 2012-02-28 13:42:10
43 1234568 2012-02-28 13:47:53
44 1234569 2012-02-28 13:52:22
45 1234570 2012-02-28 13:59:01
46 1234571 2012-02-28 14:02:12
47 1234572 2012-02-28 14:05:19
...

如果 START_TIME = '2012-02-28 14:00:00' 和窗口大小 n = 4,则生成的行集应为 ID 44...47。

不能假定条目按 START_TIME 排序。如果没有足够的条目来匹配指定的窗口大小,它可能会被裁剪。

由于我的 SQL 技能非常有限,我们将不胜感激任何帮助。

提前致谢。

最佳答案

您可以使用分析函数来帮助解决这个问题:

select WT.ID
from (select WT.ID
,max(
START_TIME)
over (order by START_TIME
rows between 2 preceding and 2 following)
as MAXST
,min(
START_TIME)
over (order by START_TIME
rows between 2 preceding and 2 following)
as MINST
from WT) WT
where MINST < to_date('2012-02-28 14:00:00', 'yyyy-mm-dd hh24:mi:ss')
and MAXST > to_date('2012-02-28 14:00:00', 'yyyy-mm-dd hh24:mi:ss')

关于sql - 条目选择窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488842/

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