【发布时间】:2020-11-14 18:07:11
【问题描述】:
对于下面的sql表达式:
some_timstamp_field RANGE BETWEEN INTERVAL '5' second PRECEDING AND CURRENT ROW
我想将常量值'5' 更改为我表中某个字段的值(因此该值不会是常量)。
有可能吗?
【问题讨论】:
-
我认为这在 Vertica 的窗框规格中是不可能的。您可能会用样本数据和所需结果提出另一个问题,看看是否有其他方法可以解决您想要做的事情。
-
尝试动态 SQL,即通过 shell 或 Python 脚本编写 SQL。你从那里管理你的区间变量。
-
在几乎所有 DBMS 中至少大致遵守 OLAP 函数中的 ANSI 标准,
RANGE BETWEEN PRECEDING ... AND FOLLOWING ...间隔表达式必须是常量文字。正如@minatverma 指出的那样,生成 SQL 的 SQL 可以成为您的朋友。但是,例如,尝试将两组不同的标识符放在您要粘贴到问题中的时间序列数据样本中,每个标识符在RANGE中需要不同的间隔,以及您需要实现的目标。 Vertica 具有时间序列功能,可以帮助您以不同方式解决业务问题