从表中捕获值并在SQL函数中声明为局部变量
我正在学习如何用SQL编写函数,这可能很简单,但似乎找不到我想要的。我的职能如下:从表中捕获值并在SQL函数中声明为局部变量,sql,postgresql,Sql,Postgresql,我正在学习如何用SQL编写函数,这可能很简单,但似乎找不到我想要的。我的职能如下: CREATE OR REPLACE FUNCTION A.aggregate(r_id text) RETURNS VARCHAR LANGUAGE plpgsql AS $function$ begin EXECUTE('CREATE UNLOGGED TABLE F.counts AS SELECT name,
CREATE OR REPLACE FUNCTION A.aggregate(r_id text)
RETURNS VARCHAR
LANGUAGE plpgsql
AS $function$
begin
EXECUTE('CREATE UNLOGGED TABLE F.counts AS
SELECT name,
unique_cats,
unique_dogs,
total_cats,
total_dogs
FROM A.tb1
WHERE date in (select date from A.tb1) BETWEEN''' || start_date || '''AND''' || end_date ||
''';''');
END
$function$
;
我想捕获最小日期和最大日期,并在执行函数中使用它从tb1中筛选出来,以获取日期介于开始日期和结束日期之间的数据行。对代码的修改:
-- Add to below
DECLARE
min_date date;
max_date date;
-- Add to below
BEGIN
SELECT INTO min_date, max_date min(some_date_fld), max(some_date_fld) FROM BA.activity_dates;
... BETWEEN $1 AND $2 ...
) USING min_date, max_date;
有关选择进入的信息,请参阅。有关使用的信息,请参见