You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询从归档表获取多个指定时间点的历史数据?

实现方案

你可以通过CROSS APPLY(或OUTER APPLY)来实现遍历FirstDateMonth表中所有时间点,批量查询归档表数据的需求,具体SQL如下:

select
    fdm.Date,
    f.Item,
    f.Quantity
from
    FirstDateMonth fdm
cross apply (
    select
        Item,
        Quantity
    from
        Fruit for SYSTEM_TIME as of fdm.DateTimeUTC
) f
order by
    fdm.Date, f.Item;

说明:

  1. CROSS APPLY:针对FirstDateMonth中的每一条记录,执行子查询里的归档数据查询,自动合并所有时间点的结果集,完全匹配你需要的输出格式。
  2. OUTER APPLY:如果需要保留FirstDateMonth中所有时间点(哪怕某个时间点Fruit表无对应数据),替换CROSS APPLY为OUTER APPLY即可,无数据的行Item和Quantity会显示为NULL。
  3. 子查询直接使用FirstDateMonth表的DateTimeUTC字段作为SYSTEM_TIME AS OF的参数,无需单独声明变量,简化逻辑。

内容的提问来源于stack exchange,提问作者Hslew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:53:25