You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
1.1 KiB
22 lines
1.1 KiB
6 months ago
|
create table kpdl_zp_nas_diff as SELECT ogc_fid, wkb_geometry, kd_kanwil, nm_kanwil, nm_kpp, kd_kpp, kd_unit_or, no_urut, nip_ar, nm_ar, seksi, zona, wil_induk, null as attribute1
|
||
|
FROM zp_nas;
|
||
|
|
||
|
update kpdl_zp_nas_diff a set wkb_geometry = ST_Multi(COALESCE(
|
||
|
ST_Difference(a.wkb_geometry, (SELECT ST_Union(wkb_geometry) FROM zp_nas AS b WHERE ST_Intersects(a.wkb_geometry, b.wkb_geometry) and a.ogc_fid> b.ogc_fid)),
|
||
|
a.wkb_geometry
|
||
|
));
|
||
|
|
||
|
with zonaolah as
|
||
|
(select
|
||
|
ogc_fid, --unique id
|
||
|
cardinality(string_to_array(wil_induk::varchar, ',')) / 2 as jml_pecahan,
|
||
|
REGEXP_REPLACE((string_to_array(wil_induk::varchar, ','))[2],'"|}|{|\s{2,}','', 1, 0, 'i') as nama_kel_pertama
|
||
|
from zp_nas)
|
||
|
update kpdl_zp_nas_diff a set attribute1 =
|
||
|
initcap(a.zona) ||
|
||
|
case
|
||
|
when zonaolah.jml_pecahan = 1 then ' dari kelurahan ' || zonaolah.nama_kel_pertama
|
||
|
when zonaolah.jml_pecahan > 1 then ' dari kelurahan ' || zonaolah.nama_kel_pertama || ' dan ' || zonaolah.jml_pecahan - 1 || ' lainnya'
|
||
|
else '' end
|
||
|
from zonaolah
|
||
|
where a.ogc_fid = zonaolah.ogc_fid;
|