2017-09-22 6 views
0

私は機能select sevRun ('01','02',2);を呼び出すときに、私は関数を作成しようとしている次のエラー赤方偏移UDFの集約や窓のエラー

Invalid operation: The select expression can not have aggregate or window function.;

を取得するには、次の関数に

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; 

を書かれています私は合わせて月に複数回呼び出すと、変更することができ

+0

エラーから、私はそれがそこにあるだけ集計関数であるので、 'COUNT'は、問題であると言うでしょう。私はRETURNSがRETURNSのbigint' 'とint''置き換える場合 – RealCheeseLord

+0

あなたの機能は、PostgreSQL 9.6に私のために動作します。 –

+0

これはpostgreに基づいてredshiftにある – pyth0nBen

答えて

0

あなたは赤方偏移におけるSQL UDF内のテーブルから選択することはできません。指定できる関数は、入力パラメーターを操作して出力を戻すスカラー関数だけです。

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