You are on page 1of 2

1.

Realice un procedimiento que contenga todos los continentes con su poblacin total
(Base de datos World)

CREATE OR REPLACE FUNCTION continentes_con_su_poblacin_total


(IN cont VARCHAR(40) DEFAULT 'ALL',
OUT "CONTINENTE" character varying(50),
OUT "POBLACION" bigint
)
RETURNS SETOF RECORD AS
$BODY$
BEGIN
IF cont ='ALL' then return query
SELECT continent AS "CONTINENTE", SUM(population) AS "POBLACION"
FROM public.country
group by continent;
END IF;

IF cont !='ALL' then return query


SELECT continent AS "CONTINENTE", SUM(population) AS "POBLACION"
FROM public.country
WHERE continent = cont group by 1 order by 1;
END IF;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql';

SELECT * FROM continentes_con_su_poblacin_total ('Asia')


Cree un procedimiento que muestre un registro con el pas con mayor poblacin y la
ciudad con la mayor poblacin

CREATE OR REPLACE FUNCTION pas_y_ciudad_con_mayor_poblacion


(IN cont VARCHAR(40) DEFAULT 'ALL',
OUT "PAIS" character varying(52),
OUT "CIUDAD" character varying(35)
)
RETURNS SETOF RECORD AS
$BODY$
BEGIN
IF cont ='ALL' then return query
SELECT city AS "name", MAX(population) AS "POBLACION"
FROM public.city
group by city ;
END IF;

IF cont ='ALL' then return query


SELECT country AS "name", MAX(population) AS "POBLACION"
FROM public.country
group by country ;
END IF;

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

SELECT * FROM pas_y_ciudad_con_mayor_poblacion

You might also like