我写了以下函数
create function sevRun (text,text,int)
returns int stable as $$
SELECT count(*)
FROM (SELECT case_id
FROM dbname.tablename
WHERE create_date >= TO_DATE('2017-' || $1::text || '-01', 'YYYY-MM-DD')
AND create_date < TO_DATE('2017-' || $2::text || '-01', 'YYYY-MM-DD')
AND min_impact <= $3
AND assigned_to_group IN ('listitem','listitem','....')
) inline_view
$$language sql;
当我调用函数select sevRun ('01','02',2);
时,我收到以下错误
Invalid operation: The select expression can not have aggregate or window function.;
我正在尝试创建一个可以多次调用的函数,并将月份更改为适合
答案 0 :(得分:1)
您无法从Redshift中的SQL UDF中的表中进行选择。唯一允许的函数是标量函数,它们对输入参数进行操作并返回输出。
答案 1 :(得分:0)
为什么不这个查询 -
SELECT COUNT(*)
FROM dbname.tablename
WHERE create_date >= TO_DATE('2017-' || $1::text || '-01', 'YYYY-MM-DD')
AND create_date < TO_DATE('2017-' || $2::text || '-01', 'YYYY-MM-DD')
AND min_impact <= $3
AND assigned_to_group IN ('listitem','listitem','....')