【问题标题】:What is LATEST_ON syntax in QuestDB?QuestDB 中的 LATEST_ON 语法是什么?
【发布时间】:2022-10-23 20:51:44
【问题描述】:

我第一次使用 QuestDB 和 SQL,偶然发现了 QuestDB 中使用的 LATEST_ON 语法。有人可以解释它的用法以及在哪里使用它吗?

【问题讨论】:

    标签: questdb


    【解决方案1】:

    引用自文档:

    对于多个时序存储在同一张表中的场景,使用标准的 SQL 语法来识别这些时序的最新项是比较困难的。 QuestDB 为 SELECT 语句引入了 LATEST ON 子句,以消除样板混乱并相对轻松地拼接表。

    欲了解更多信息,请访问official documentation

    【讨论】:

      【解决方案2】:

      LATEST ON 是查找表中每个唯一时间序列的最新记录。有关示例,请参阅此页面:https://questdb.io/docs/reference/sql/latest-on/

      【讨论】:

        【解决方案3】:

        根据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
        

        【讨论】:

          【解决方案4】:

          对于多个时间序列存储在同一个表中的场景,Latest on 按给定键或键组合的时间戳检索最新条目。 查看此链接以获取一些示例:https://questdb.io/docs/reference/sql/latest-on/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-01
            • 2013-10-17
            • 2020-04-18
            • 2016-06-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多