簡體   English   中英

Redshift UDF 聚合或窗口錯誤

[英]Redshift UDF aggregate or window error

我寫了以下函數

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.;

我正在嘗試創建一個可以多次調用並更改月份以適應的函數

您無法從 Redshift 中 SQL UDF 內的表中進行選擇。 唯一允許的函數是對輸入參數進行運算並返回輸出的標量函數。

UPD:Redshift 現在支持 plpgsql 中的存儲過程。 官方文檔

為什么不是這個查詢 -

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','....')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM