【问题标题】:Sum values based on start and end dates in another table根据另一个表中的开始日期和结束日期对值求和
【发布时间】:2020-10-27 07:45:14
【问题描述】:

我正在尝试使用 SQL 在 BigQuery 中进行计算,但我不知道该怎么做。 我有两张桌子:

Tablename: Periods
id            INTEGER
start_date    DATE
end_date      DATE

还有一张桌子

Tablename: Data
date         DATE
id           INTEGER
value        FLOAT

我想要做的是创建一个查询,可以将每个 id 的值和 Periods 表中的时间范围(start_date 到 end_date)相加。在这种情况下,Data 表的 id 值可能超出 Periods 表中的时间范围,因此我需要 Query 将总和限制为从 - 到 start_date 和 end_date。

希望有人能指出我正确的方向。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    考虑使用子查询:

    SELECT 
      id,
      (SELECT SUM(value) 
       FROM Data 
       WHERE Data.id = Periods.id
         AND Data.date >= Periods.start_date 
         AND Data.date <= Periods.end_date
      ) AS sums
    FROM Periods
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      相关资源
      最近更新 更多