- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个我认为很简单的问题,但也许我低估了它(或者 BigQuery 缺乏递归 CTE):
假设我有这张 table :
SELECT DATE("2021-09-01") AS date, 50 AS a, 0.5 AS b, 2 AS c
UNION ALL
SELECT DATE("2021-09-02") AS date, NULL AS a, 0.6 AS b, 1 AS c
UNION ALL
SELECT DATE("2021-09-03") AS date, NULL AS a, 0.4 AS b, 3 AS c
依此类推,直到 2021 年底。即:
a
只有第一行有一个值,而其他的直到表的末尾才变化。
row 1 = a * (1 - b) + c
row 2 = row 1 * (1 - b) + c
row 3 = row 2 * (1 - b) + c
etc.
因此给出这样的结果:
date a b c calculation
2021-09-01 50 0.5 2 27
2021-09-02 0.6 1 11.8
2021-09-03 0.4 3 10.08
关键是:我需要从前一行获取结果,然后对其应用相同的操作等等。
最佳答案
您是对的 - BigQuery 不支持 [但希望] 递归 CTE,但总有解决方法。
所以,你的问题可以用以下公式表示 电话 扔
这可以[相对容易]用窗口/分析函数实现,如下例所示
with temp as (
select *,
row_number() over(order by date) pos,
exp(sum(ln(1-b)) over(order by date)) p,
min(a) over() * exp(sum(ln(1-b)) over(order by date)) + c calculation,
from `project.dataset.table`
)
select any_value(struct(t1.date, t1.a, t1.b, t1.c)).*,
any_value(t1.calculation) + sum(
if(t1.pos > t2.pos, t2.c * t1.p / t2.p, 0)
) calculation
from temp t1
join temp t2
on t1.pos >= t2.pos
group by to_json_string(t1)
如果应用于您问题中的样本数据 - 输出是
关于javascript - 挑战 : BigQuery multiply and sum recursively,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68894088/
以下函数作为本练习的介绍,说明了用加法定义的乘法。这是最简单的“容易写下来”的递归定义。 (define (star a b) (if (= b 0) 0 (+ a (st
不知道这个操作叫什么,谷歌也没有帮助。 假设我有两个像这样的简单数据框: df1 df1 factor1 1 a 2 b 3 c > df2 factor
我有这个 cobol 程序,用于计算阶乘: IDENTIFICATION DIVISION. PROGRAM-ID. Factorial-hopefully. AUTHOR. Dar
作为我正在学习的测试优先 ruby 类(class)的一部分,我需要制作一个基本的乘法方法,该方法首先采用 2 个参数并将它们相乘,但之后 rspec 测试将多个数字相乘的能力同样的方法。 我只想
题目地址:https://leetcode.com/problems/multiply-strings/description/ 题目描述 Given two non-negative integ
我正在尝试在 Java 中实现 np.multiply 并且我对它实际在做什么感到困惑。该文档只是说明它进行元素乘法。它与我能找到的任何数学矩阵乘积都不匹配。它部分匹配元素方式的 Hadamard 乘
这个问题在这里已经有了答案: Transpose / reshape dataframe without "timevar" from long to wide format (9 个回答) 关闭2年
我有一些复选框,选中后会更新底部的总价,它们效果很好。不过,我还添加了一个单独的输入字段来输入数量。我试图让该数量乘以输入字段的值。现在我只有将文本输入字段添加到总数中的代码,而不是将其乘以旁边的字段
我正在尝试在 MongoDB 中使用 $multiply 运算符。 第 1 步 db.message1064sd_00011_3744.aggregate([ {$project : {
我有两本字典,一本在代码主体中,一本在输入中。我想比较两个字典,如果键相同,我想相乘并打印值。下面是我迄今为止编写的代码。 dict_a = { 'r':100, 'y':110,
>>> a = [] >>> b = [a*2] >>> b [[]] >>> b = [copy.deepcopy(a)*2] >>> b [[]] 我正在尝试将 b 创建为由 a 的两个副本组成的
我在一个数据库中有几个 mysql 表。 目前我正在对我的网站进行整理测试,其中一个是测试一个沉重的数据库,看看这对性能(搜索)有多大影响。 该网站是一个分类网站。我需要很长时间才能一次插入一个分类以
我有一些代码要运行数千次,想知道什么更快。array 是一个包含 30 个值的短数组,它始终包含 0、1 或 2。 result = (array[29] * 68630377364883.0)
好的,所以我有这样的东西: SendKeys.send("blah" + "{BS}") 我想多次退格“{BS}”,例如有一个变量,我可以将“{BS}”乘以退格一定次数,我该怎么做? 我知道可以在 P
实现大整数乘法 使用整数数组来存储一个 biginteger 像 297897654 将存储为 {2,9,7,8,9,7,6,5,4} 实现 bigintegers 的乘法函数 例子:{2, 9, 8
这个问题在这里已经有了答案: Numpy np.multiply vs *-Operator [duplicate] (2 个回答) 3年前关闭。 numpy.multiply documentati
我正在尝试使用 Transform.multiply4x4() 移动表面修改器,但它似乎没有按预期工作。我试图旋转一个几乎平坦的表面,然后将其发送到远处。我的代码如下所示 myModif
我希望使用 SIMD 指令一次将寄存器中的所有 32 位整数相乘,这是我目前尝试的方法: int32_t a [8] = {1, 2, 3, 4, 5, 6, 7, 8}; int32_t b
尝试在 4 个表(项目、任务、支出和捐赠)上运行简单的内连接查询。连接似乎在某处缠结。例如,SUM(tasks.budget_amount) 应该给出 3,211,385.21 的组合值,但我得到的是
我知道 NaN 的意思不是数字,但我不明白我是如何得到这个错误的。我正在做的是引用来 self 的形状类的我的形状对象的顶点值,并在我的渲染器类中使用它们。当我在 logcat 上打印出顶点的值时,我
我是一名优秀的程序员,十分优秀!