我一般对Postgres或sql还是很陌生,我不知道如何在select子句中使用函数参数。
我想做的是能够将列名传递给一个函数,该函数然后按此参数对所有记录进行分组并将其包括在返回的表中。我无法确定的是如何在select语句中扩展变量。当我运行以下查询时,对于所选列,我得到的只是我传递给函数的值。如何使用参数的值作为选择的列?
CREATE FUNCTION get_some_transactions(col_name varchar(10))
RETURNS TABLE(col_name varchar(10), sum float) AS $$
SELECT
col_name AS col_name,
sum(amount)
FROM
transaction
GROUP BY
col_name;
$$ LANGUAGE SQL;
get_some_transaction('recipient');
返回类似的内容
col_name |amount
---------*--------
recipient|321782.2