数据仓库图解交互式教材
指标体系“截至某天”和“一段时间”有什么区别?
学习进度0 / 64
EN
首页课程学习“截至某天”和“一段时间”有什么区别?
3-3指标体系10 分钟

“截至某天”和“一段时间”有什么区别?

“截至某天”描述一个时间点的状态,“一段时间”描述期间内发生的事件;两个问题不能共用同一条时间条件。

时间语义快照交易事实
核心概念

时间语义

时间语义说明一个数字对应时间点的状态,还是一段时间内发生的事件。日期写在 SQL 里,不代表业务含义已经写清楚。

“截至 9 月 30 日”问的是状态

2026-09-30 的账户余额快照里,A101 是 720 元,A102 是 480 元。把这两行相加,回答的是“9 月 30 日这个时间点,账户状态合计还有多少钱”。

这对应第 02 章见过的 Periodic Snapshot Fact:一行代表一个账户在固定周期末的状态,即使当天没有新交易,也可以有一行快照。

时间语义实验 · 点还是区间

在同一条时间轴上切换两个问题

选择“截至某天”或“一段时间”,查看统计边界、输入行含义、纳入的记录和结果。取款事件会保留在表里,但不会被当成“累计存入金额”。

正在加载交互实验…

“9 月累计存入金额”问的是事件

2026-09-01 到 2026-09-30 之间,T001、T003、T004 三笔存入交易合计 680 元。这个数字描述期间内发生了什么,不等于 9 月 30 日仍然留在账户里的余额;期间里还可能发生取款、转账或其他交易。

因此,存款余额使用 snapshot_date 表达状态归属,累计存入金额使用交易事件的日期区间。两者的统计对象、输入 Grain 和可回答问题都不同。

  • 存款余额 → 某个时间点是什么状态。
  • 累计存入金额 → 一段时间内发生了多少存入事件。