在Postgresql存储过程中运行聚合函数

时间:2016-06-01 21:24:50

标签: postgresql stored-procedures

我有一个关于在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。有人可以帮我推动正确的方向吗?

0 个答案:

没有答案