我正在尝试使用标准 SQL 和 javascript UDF 在 bigquery 中运行以下查询。该查询需要永远运行,因此我什至无法验证该函数是否正常工作。如果查询有任何问题导致它永远运行,您能告诉我吗?我尝试将函数调用从 更改为IRRCalc(Array<FLOAT64> [cash_flow], ARRAY<INT64> [date_delta]) as IRR并IRRCalc(array(select cash_flow from input),array(select date_delta from input)) as IRR解决了问题。虽然我不明白有什么问题IRRCalc(Array<FLOAT64> [cash_flow], ARRAY<INT64> [date_delta]) as IRR。有人可以看一下并透露一些信息吗?非常感谢。
这是查询:
CREATE TEMPORARY FUNCTION IRRCalc(cash_flow ARRAY<FLOAT64>, date_delta ARRAY<INT64>)
RETURNS FLOAT64
LANGUAGE js AS """
min = 0.0;
max = 1.0;
do {
guess = (min + max) / 2;
NPV = 0.0;
for (var j=0; j<cash_flow.length; j++){
NPV += cash_flow[j]/Math.pow((1+guess),date_delta[j]/365);
}
if (NPV > 0){
min = …Run Code Online (Sandbox Code Playgroud)