相关疑难解决方法(0)

返回与plpgsql函数中的输入数组元素匹配的行

我想创建一个PostgreSQL函数,它执行以下操作:

CREATE FUNCTION avg_purchases( IN last_names text[] DEFAULT '{}' )
  RETURNS TABLE(last_name text[], avg_purchase_size double precision)
AS
$BODY$
DECLARE
  qry text;
BEGIN
qry := 'SELECT last_name, AVG(purchase_size) 
          FROM purchases
          WHERE last_name = ANY($1)
          GROUP BY last_name'
RETURN QUERY EXECUTE qry USING last_names;
END;
$BODY$
Run Code Online (Sandbox Code Playgroud)

但我在这里看到两个问题:

  1. 我不清楚数组类型是最有用的输入类型.
  2. 当我这样做时,这当前返回零行:

    SELECT avg_purchases($${'Brown','Smith','Jones'}$$);
    
    Run Code Online (Sandbox Code Playgroud)

我错过了什么?

arrays postgresql plpgsql aggregate-functions postgresql-9.2

3
推荐指数
1
解决办法
1637
查看次数