Function postgresql函数的输出有问题

Function postgresql函数的输出有问题,function,psql,Function,Psql,我有一个名为“reserves”的表,该练习要求我创建一个函数,该函数计算有多少预订的id低于我作为函数唯一参数给出的id。他们还问我,当我引入'NULL'作为参数时,函数必须对'import'列中的所有导入进行求和,并显示总数。我有一半的函数在工作。“NULL”部分是不工作的部分 现在我有这个: CREATE OR REPLACE FUNCTION compta_reserves(int) RETURNS int AS $$ DECLARE num_reserves INT:=(SELECT

我有一个名为“reserves”的表,该练习要求我创建一个函数,该函数计算有多少预订的id低于我作为函数唯一参数给出的id。他们还问我,当我引入'NULL'作为参数时,函数必须对'import'列中的所有导入进行求和,并显示总数。我有一半的函数在工作。“NULL”部分是不工作的部分

现在我有这个:

CREATE OR REPLACE FUNCTION compta_reserves(int) RETURNS int AS $$
DECLARE
num_reserves INT:=(SELECT COUNT(*) FROM mobilitat.reserves);
id ALIAS FOR $1;
comptador INT:=0;
i INT:=1;
import_total double precision:=((SELECT SUM(import) FROM mobilitat.reserves WHERE import<60)::INT);

BEGIN
IF (id=NULL) THEN
      RETURN import_total AS int;
ELSE
      WHILE i<num_reserves LOOP
         IF (SELECT id_reserva FROM mobilitat.reserves WHERE id_reserva=i)<id  THEN
        IF (SELECT import FROM mobilitat.reserves WHERE id_reserva=i)<60 THEN
                comptador=comptador+1;
            END IF;
     END IF;
         i=i+1;
      END LOOP;
      RETURN comptador;
END IF;
END;
$$ LANGUAGE PLPGSQL;
当我使用'NULL'参数运行函数时,我只得到一个没有求和的空表