如何在PostgreSQL中从两个函数创建一个函数?

如何在PostgreSQL中从两个函数创建一个函数?,postgresql,function,parameters,Postgresql,Function,Parameters,我想在PostgreSQL中从函数a和函数b创建另一个函数,即函数c 功能 CREATE OR REPLACE FUNCTION function_a(year_ INTEGER, col_b INTEGER) RETURNS INTEGER AS $$ DECLARE vbl INTEGER; BEGIN SELECT COUNT(col_b) INTO vbl FROM table1 WHERE date_part('year',table1.col_aa

我想在PostgreSQL中从函数a和函数b创建另一个函数,即函数c

功能

CREATE OR REPLACE FUNCTION function_a(year_ INTEGER, col_b INTEGER)
RETURNS INTEGER AS
$$
DECLARE 
    vbl INTEGER;
BEGIN 
    SELECT COUNT(col_b) INTO vbl
    FROM table1
    WHERE date_part('year',table1.col_aa) = year_ AND table1.col_bb = col_b;
    RETURN vbl; 
END;
$$  
LANGUAGE plpgsql;

功能



CREATE OR REPLACE FUNCTION function_b(year_ INTEGER)
RETURNS INTEGER AS
$$
DECLARE 
    vbl_b integer;
BEGIN 
    SELECT COUNT(col_aa) INTO vble_b
    FROM table1
    WHERE date_part('year',table1.col_aa) = year_;
    RETURN vbl_b
END;
$$  
LANGUAGE plpgsql;

我想创建包含函数a和b的函数c,它返回: 年份:功能的年份参数 中位数:函数a的vbl除以函数b的vbl



CREATE OR REPLACE FUNCTION function_b(year_ INTEGER)
RETURNS INTEGER AS
$$
DECLARE 
    vbl_b integer;
BEGIN 
    SELECT COUNT(col_aa) INTO vble_b
    FROM table1
    WHERE date_part('year',table1.col_aa) = year_;
    RETURN vbl_b
END;
$$  
LANGUAGE plpgsql;


如何从PostgreSQL中的两个函数中创建一个函数?

如果我正确理解了下面提到的定义,则该定义适用于您

CREATE OR REPLACE FUNCTION function_c(year_ INTEGER, col_b INTEGER)
RETURNS table (year1 integer, median numeric) AS
$$
DECLARE 
    var1 INTEGER;
    var2 INTEGER;
    var3 numeric;
BEGIN 
var1=(select * from function_a(year_));
var2=(select * from function_b(year_, vol_b));
var3=var1/var2;

return query
select year_, var3;

END;
$$  
LANGUAGE plpgsql;

您的问题没有足够的问题/查询详细信息。请用一些示例数据或示例代码详细说明您的问题。否则它会吸引落选/关闭你说的“联系他们”是什么意思?如果你想从
function\u c
调用
function\u a
function\u b
,那么你可以这样做,就像使用普通Postgres函数一样。谢谢你的反馈,我编辑了我的帖子。这很完美,但是我想要没有参数的函数c。如何获取?如果您不将参数与函数_c一起使用,那么如何在函数_a和函数_b中传递值。好的,谢谢您的帮助。