如何在PostgreSQL中从两个函数创建一个函数?
我想在PostgreSQL中从函数a和函数b创建另一个函数,即函数c 功能如何在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
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中传递值。好的,谢谢您的帮助。