根据另一个表中的开始日期和结束日期对值求和
Posted
技术标签:
【中文标题】根据另一个表中的开始日期和结束日期对值求和【英文标题】: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。
希望有人能指出我正确的方向。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于根据另一个表中的开始日期和结束日期对值求和的主要内容,如果未能解决你的问题,请参考以下文章
Oracle Query 按另一个表中的每个日期范围对一列求和