有没有一种方法可以使用Clickhouse(数组?)来计算依赖于先前计算的值的顺序值。
例如 在第一天,我从0开始-消耗5-加100-最后以= 0-5 + 100 = 95
我的第二天开始于我在第一天结束时的结果,即95 –再次消耗10 –加5 –最后以95-10 + 5 = 90(这将是第三天的开始)>
给出 ConsumeArray [5,10,25]
AddArray [100,5,10]
计算EndingPosition和(=第二天的StartingPosition)
-
Day1 Day2 Day3
--------------------------------------------------------------------
StartingPosition (a) = Previous Ending Position | 0 95 90 Calculate
Consumed (b) | 5 10 25
Added (c) | 100 5 10
EdingPosition (d) = a-b+c | 95 90 75 Calculate
答案 0 :(得分:0)
只需先完成所有添加/消费操作,然后进行累加。
WITH [5,10,25] as ConsumeArray,
[100,5,10] as AddArray
SELECT
arrayCumSum(arrayMap((c, a) -> a - c, ConsumeArray, AddArray));