【发布时间】:2022-10-23 20:51:44
【问题描述】:
我第一次使用 QuestDB 和 SQL,偶然发现了 QuestDB 中使用的 LATEST_ON 语法。有人可以解释它的用法以及在哪里使用它吗?
【问题讨论】:
标签: questdb
我第一次使用 QuestDB 和 SQL,偶然发现了 QuestDB 中使用的 LATEST_ON 语法。有人可以解释它的用法以及在哪里使用它吗?
【问题讨论】:
标签: questdb
引用自文档:
对于多个时序存储在同一张表中的场景,使用标准的 SQL 语法来识别这些时序的最新项是比较困难的。 QuestDB 为 SELECT 语句引入了 LATEST ON 子句,以消除样板混乱并相对轻松地拼接表。
欲了解更多信息,请访问official documentation
【讨论】:
LATEST ON 是查找表中每个唯一时间序列的最新记录。有关示例,请参阅此页面:https://questdb.io/docs/reference/sql/latest-on/
【讨论】:
根据ON 时间戳,它为您提供PARTITION BY 值的每个组合的最新可用记录
举个例子可能更容易理解。如果你去https://demo.questdb.io你可以执行这个查询
select * from trades latest on timestamp
partition by symbol, side
然后它将向您显示符号和边的每个组合的最新现有行。如果您想使用标准 SQL 来执行此操作,您可能必须使用窗口函数,类似这样
select * from
(select *
,ROW_NUMBER() over (partition by Symbol, Side
order by timestamp DESC) AS RowNumber
from trades where timestamp > '2022-10-01') t
where t.RowNumber = 0
【讨论】:
对于多个时间序列存储在同一个表中的场景,Latest on 按给定键或键组合的时间戳检索最新条目。 查看此链接以获取一些示例:https://questdb.io/docs/reference/sql/latest-on/
【讨论】: