sql - 在 BigQuery 中交叉应用历史日期范围
问题描述
我有一个不断增长的订单表,看起来像这样:
units_sold | 时间戳 |
---|---|
1 | 2021-03-02 10:00:00 |
2 | 2021-03-02 11:00:00 |
4 | 2021-03-02 12:00:00 |
3 | 2021-03-03 13:00:00 |
9 | 2021-03-03 14:00:00 |
我试图将表格划分为每一天,并收集当天和前一天售出的单位的统计数据。我可以很容易地在今天和昨天买到今天和昨天的单位,但我需要为我的订单表中的每个日期交叉应用一个日期范围。
预期结果如下所示:
单位_已售_昨天 | 今日售出单位 | 日期测量 |
---|---|---|
12 | 7 | 2021-03-02 |
无效的 | 12 | 2021-03-03 |
一种方法是每天创建订单数据或将订单数据附加到新表中。但是,这个表可能会变得非常大,而且我也需要历史数据。
在我看来,我知道我已经级联了数据,以便 BigQuery 将数据与“今天的日期”进行比较,该日期将跨越表中的所有日期。
我认为这种转变可能来自表中所有不同日期的交叉应用,所以我会得到每个日期的订单表的副本,但有一个不同的“今天日期”列,我可以推断units_sold_today
通过使用该列将数据与销售日期进行日期差异。
但是,这仍然会创建大量数据来处理,我猜 BigQuery 或标准 SQL 语法中可能有一个简单的函数。
解决方案
推荐阅读
- lua - lua table.sort 因“尝试将 nil 与字符串进行比较”而崩溃
- mongodb - 更新:将字段移动到另一个字段数组中
- javascript - console.log 显示数据但在 if 条件 javascript 中出现错误(使用内部反应组件)
- rust - 如何在 Rust 中旋转链表?
- html - 从缩进的文本树创建 html 列表呈现
- java - Insert values in many to many relationship tables with JOOQ
- ios - Getting error Authentication with Apple Developer Portal failed while Expo build:ios
- powershell - Powershell - Split a string on a character
- python - Pygame: Fastest way to draw a scanline rasterized triangle pixel by pixel with depth buffering?
- spring - Hibernate collection with @ElementCollection contains duplicated elements in database