循环内的postgresql聚合函数
我正在尝试创建此函数,但收到以下错误: 错误:max不是已知变量 但是,如果我使用其中一个聚合函数,效果很好,但不能同时使用这两个函数循环内的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
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;