Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql BigQuery基于前几行更改当前行的值_Sql_Google Cloud Platform_Google Bigquery - Fatal编程技术网

Sql BigQuery基于前几行更改当前行的值

Sql BigQuery基于前几行更改当前行的值,sql,google-cloud-platform,google-bigquery,Sql,Google Cloud Platform,Google Bigquery,我希望有一个表,它可以生成资源的每日计划产量,并且可以在计划发生更改时调整计划产量 在本表中,最初的每日计划是每月目标除以天数。当出现“生产冲击/停机”时,调整后的_值将成为当天的每日_计划。为了考虑生产损失,对剩余天数的每日计划值进行调整。 这方面的一般公式是: (每月目标-总和(每日计划))/(30天+1) 注:每日计划总和从第1天开始 我在BigQuery中遇到的问题是,我需要Daily_Schedule值来引用前面同一列的行 换句话说,我的表中有Day、Monthly_Goal和Adju

我希望有一个表,它可以生成资源的每日计划产量,并且可以在计划发生更改时调整计划产量

在本表中,最初的每日计划是每月目标除以天数。当出现“生产冲击/停机”时,调整后的_值将成为当天的每日_计划。为了考虑生产损失,对剩余天数的每日计划值进行调整。 这方面的一般公式是:

(每月目标-总和(每日计划))/(30天+1)

注:每日计划总和从第1天开始

我在BigQuery中遇到的问题是,我需要Daily_Schedule值来引用前面同一列的行

换句话说,我的表中有Day、Monthly_Goal和Adjusted_Value列,但需要应用上述规则创建Daily_Schedule列。有办法做到这一点吗

白天 每月目标 调整后的_值 每日时间表 1. 6000 无效的 200 2. 6000 无效的 200 3. 6000 无效的 200 4. 6000 无效的 200 5. 6000 无效的 200 6. 6000 100 100 7. 6000 无效的 204.17 8. 6000 无效的 204.17 9 6000 无效的 204.17 10 6000 无效的 204.17 11 6000 无效的 204.17 12 6000 无效的 204.17 13 6000 无效的 204.17 14 6000 无效的 204.17 15 6000 0 0 16 6000 无效的 217.78 17 6000 无效的 217.78 18 6000 无效的 217.78 19 6000 无效的 217.78 20 6000 无效的 217.78 21 6000 无效的 217.78 22 6000 无效的 217.78 23 6000 无效的 217.78 24 6000 无效的 217.78 25 6000 无效的 217.78 26 6000 无效的 217.78 27 6000 无效的 217.78 28 6000 无效的 217.78 29 6000 无效的 217.78 30 6000 无效的 217.78
是否要使用该值的新列?是的,我希望使用前三列中的数据生成第四列。我认为您的公式中有错误。根据我的理解,您可以分享一个您手动计算的预期结果示例吗?预期结果显示在“每日计划”列中是的-预期结果显示在“每日计划”列中。日期、月目标和调整值列都在我的数据库中。这个公式是正确的。它计算每天达到每月目标所需的平均剩余资源量。例如,对于第1天:(6000-0)/(30-1+1)=200,对于第2天:(6000-200)/(30-2+1)=200,这将继续。然后,在第7天:(6000-5*200-100)/(30-7+1)=204.166666