Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
循环内的postgresql聚合函数_Postgresql_Loops_For Loop_Aggregate Functions - Fatal编程技术网

循环内的postgresql聚合函数

循环内的postgresql聚合函数,postgresql,loops,for-loop,aggregate-functions,Postgresql,Loops,For Loop,Aggregate Functions,我正在尝试创建此函数,但收到以下错误: 错误:max不是已知变量 但是,如果我使用其中一个聚合函数,效果很好,但不能同时使用这两个函数 CREATE OR REPLACE FUNCTION "GerarTeste"() RETURNS BOOL AS $BODY$ DECLARE inicio date; fim date; rResult record; BEGIN

我正在尝试创建此函数,但收到以下错误: 错误:max不是已知变量

但是,如果我使用其中一个聚合函数,效果很好,但不能同时使用这两个函数

CREATE OR REPLACE FUNCTION "GerarTeste"()
  RETURNS BOOL  AS 
    $BODY$
    DECLARE     
            inicio date;
            fim date;
            rResult record;     
    BEGIN
        FOR rResult IN 
            SELECT DISTINCT  lote 
            FROM  fatura 
            ORDER BY lote
        LOOP
            SELECT 
                 MIN(fatura.inicio) INTO inicio ,MAX(fatura.inicio) into fim
            FROM fatura
            WHERE lote = rResult.lote;      

            RAISE NOTICE '%',inicio;

        END LOOP;
        RETURN true;
    END;
$BODY$
LANGUAGE 'plpgsql';

如果有多个列,则仍然只有一个列


我不明白这个功能的目的。写return true是一种极其复杂和昂贵的方法;而且也不需要循环。你可以简单地做选择。。其中lote从fatura中选择lote并摆脱慢循环就是一个例子。。。。
        SELECT MIN(fatura.inicio), MAX(fatura.inicio) 
            into inicio, fim --<< here
        FROM fatura
        WHERE lote = rResult.lote;