From 24eeaa787de3e2398ba087a6fd7018105dcd1900 Mon Sep 17 00:00:00 2001 From: John Krauss Date: Thu, 21 Apr 2016 11:33:37 -0400 Subject: [PATCH] first-pass obs_getpopulation --- src/pg/sql/41_observatory_augmentation.sql | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/pg/sql/41_observatory_augmentation.sql b/src/pg/sql/41_observatory_augmentation.sql index f5b9c8b..ae3a2a3 100644 --- a/src/pg/sql/41_observatory_augmentation.sql +++ b/src/pg/sql/41_observatory_augmentation.sql @@ -437,6 +437,31 @@ END; $$ LANGUAGE plpgsql; +CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetPopulation( + geom geometry, + normalize TEXT DEFAULT 'area', + boundary_id TEXT DEFAULT NULL, + time_span TEXT DEFAULT NULL +) +RETURNS NUMERIC +AS $$ +DECLARE + population_measure_id TEXT; + result NUMERIC; +BEGIN + -- TODO use a super-column for global pop + population_measure_id := '"us.census.acs".B01001001'; + + EXECUTE format('SELECT (cdb_observatory.OBS_GetMeasure( + %L, %L, %L, %L, %L + ))->''value'' LIMIT 1', geom, population_measure_id, normalize, boundary_id, time_span) + INTO result; + + return result; +END; +$$ LANGUAGE plpgsql; + + CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetPolygons( geom geometry, geom_table_name text,