Snowflake cloud data platform 文字值和表值的雪花行为不同
我有一个函数AVGF,它假设输出逗号分隔序列的平均值Snowflake cloud data platform 文字值和表值的雪花行为不同,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我有一个函数AVGF,它假设输出逗号分隔序列的平均值 CREATE OR REPLACE FUNCTION AVGF (STR VARCHAR) RETURNS VARCHAR LANGUAGE JAVASCRIPT AS $$ var str_array = STR.split(","); var total = 0.0 for (i = 0; i < str_array.length; i += 1) { tota
CREATE OR REPLACE FUNCTION AVGF (STR VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
var str_array = STR.split(",");
var total = 0.0
for (i = 0; i < str_array.length; i += 1) {
total += parseFloat(str_array[i]);
}
return total/str_array.length;
$$
;
然而,当我把它放在桌子上使用时,它就不起作用了
SELECT AVGF(concat(TO_CHAR(ic.col1) ,',',TO_CHAR(ic.col2) )::STRING)
from tab
Output: JavaScript execution error: Uncaught TypeError: Cannot read property 'split' of undefined in AVGF at ' var str_array = STR.split(",");' position 21
其中tab是带有col1(数字)和col2(浮动)的表
有什么原因和解决方案吗?这是一个强制转换问题,请按以下所述修改函数以使其正常工作
CREATE OR REPLACE FUNCTION AVGF (STR VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
var str_array = String(STR).split(",");
var total = 0.0
for (i = 0; i < str_array.length; i += 1) {
total += parseFloat(str_array[i]);
}
return total/str_array.length;
$$
;
创建或替换函数AVGF(STR VARCHAR)
返回VARCHAR
语言JAVASCRIPT
作为$$
var str_array=String(str).split(“,”);
var总计=0.0
对于(i=0;i
CREATE OR REPLACE FUNCTION AVGF (STR VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
var str_array = String(STR).split(",");
var total = 0.0
for (i = 0; i < str_array.length; i += 1) {
total += parseFloat(str_array[i]);
}
return total/str_array.length;
$$
;