forked from hernan-alperin/Segmentacion-CORE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsegmentar_excedidos.sql
48 lines (40 loc) · 1.14 KB
/
segmentar_excedidos.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
titulo: segmentar_excedidos.sql
descripción:
segmenta en forma equilibrada sin cortar piso, balanceando la
cantidad deseada con la proporcional de viviendas por segmento
usando la cantidad de viviendas en la manzana.
El objetivo es que los segmentos se aparten lo mínimo de la cantidad deseada
y que la carga de los censistas esté lo más balanceado
segmenta las manzanas que tienen radios excedidos de una cantidad umbral
autor: -h+M
fecha: 2019-06-05 Mi
*/
create or replace function
indec.segmentar_excedidos(esquema text, umbral integer)
returns integer
language plpgsql volatile
set client_min_messages = error
as $function$
begin
/*
execute '
with
lados_segmentos_excedidos as (
select prov, dpto, codloc, frac, radio, mza, lado, segmento_id
from "' || esquema || '".segmentacion
join "' || esquema || '".listado
on listado_id = listado.id
group by segmento_id
having count(*) > umbral
)
update "' || esquema || '".segmentacion
set segmento_id = Null -- (?) y acá? agregar un campo en segmentación?
where
segmento_id in (select segmento_id from lados_segmentos_excedidos)
';
*/
return 1;
end;
$function$
;