我有一个关于在Postgres上的存储过程中运行内置聚合函数的问题。
我有一个查询,我经常运行这个函数:
SELECT
MAX(column_name) as max_val,
MIN(column_name) as min_val,
(column_name - min_val) / (max_val - min_val) as my_value;
我只关心最后的my_value
参数,因为我需要为很多列运行此方法,我一直试图将其作为存储过程编写,所以我可以运行SELECT get_my_val(column_name);
但是我无法正常使用它。
这就是我现在所拥有的(注意,这是非常错误的,不起作用):
create or replace function get_my_val(col VARCHAR(32))
RETURNS float AS
$BODY$
BEGIN
RETURN QUERY EXECUTE
'(' || col || ' - MIN(' || col || ')) / (MAX(' || col || ') - MIN(' || col || '))';
END
$BODY$
LANGUAGE plpgsql;
我认为我错误地使用RETURN QUERY EXECUTE
。有人可以帮我推动正确的方向吗?