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;