Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从表中捕获值并在SQL函数中声明为局部变量_Sql_Postgresql - Fatal编程技术网

从表中捕获值并在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,

我正在学习如何用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,
                        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;
有关
选择进入
的信息,请参阅。有关使用
信息,请参见