我设法在AmazonRedshift中用Python编写了一些标量函数,即将一列或几列作为输入并根据某些逻辑或转换返回单个值。
但是有没有办法在UDF中传递数字列的所有值(即列表)并计算这些值的统计数据,例如均值或标准偏差?
答案 0 :(得分:7)
文档说明只能使用标量udf函数(参见http://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html)。
但是,如果值列表不是太大,你可能会因为创建一个字符串标量udf而期望字符串列表,LISTAGG函数执行的结果而作弊。
例如:select udfSum(listagg(val,'|')) from table;
请参阅:http://docs.aws.amazon.com/redshift/latest/dg/r_LISTAGG.html