|
| 1 | +-- Creation d'une vue permettant de reproduire le contenu de la table du même nom dans les versions précédentes |
| 2 | + |
| 3 | +CREATE OR REPLACE VIEW synthese.syntheseff AS |
| 4 | +WITH areas |
| 5 | + AS (SELECT DISTINCT ON (sa.id_synthese, t.type_code) sa.id_synthese |
| 6 | + , sa.id_area |
| 7 | + , a.centroid |
| 8 | + , st_transform(a.centroid, 4326) AS centroid_4326 |
| 9 | + , t.type_code |
| 10 | + FROM ref_geo.bib_areas_types t |
| 11 | + JOIN ref_geo.l_areas a ON t.id_type = a.id_type |
| 12 | + JOIN synthese.cor_area_synthese sa ON sa.id_area = a.id_area |
| 13 | + WHERE t.type_code::TEXT = ANY |
| 14 | + (ARRAY ['M10'::CHARACTER VARYING, 'COM'::CHARACTER VARYING, 'DEP'::CHARACTER VARYING]::TEXT[])) |
| 15 | + , obs_data AS (SELECT s.id_synthese |
| 16 | + , s.cd_nom |
| 17 | + , s.id_dataset |
| 18 | + , s.date_min AS dateobs |
| 19 | + , s.observers AS observateurs |
| 20 | + , (s.altitude_min + s.altitude_max) / 2 AS altitude_retenue |
| 21 | + , COALESCE(areas.centroid_4326, st_transform(s.the_geom_point, 4326)) AS the_geom_point |
| 22 | + , s.count_min AS effectif_total |
| 23 | + , dl.cd_nomenclature::INTEGER AS diffusion_level |
| 24 | + FROM synthese.synthese s |
| 25 | + LEFT JOIN synthese.t_nomenclatures dl |
| 26 | + ON s.id_nomenclature_diffusion_level = dl.id_nomenclature |
| 27 | + LEFT JOIN synthese.t_nomenclatures st |
| 28 | + ON s.id_nomenclature_observation_status = st.id_nomenclature |
| 29 | + LEFT JOIN areas ON ( |
| 30 | + s.id_synthese = areas.id_synthese |
| 31 | + AND areas.type_code = CASE |
| 32 | + WHEN dl.cd_nomenclature::TEXT = '1'::TEXT |
| 33 | + THEN 'COM' |
| 34 | + WHEN dl.cd_nomenclature::TEXT = '2'::TEXT |
| 35 | + THEN 'M10' |
| 36 | + WHEN dl.cd_nomenclature::TEXT = '3'::TEXT |
| 37 | + THEN 'DEP' |
| 38 | + END) |
| 39 | + WHERE (NOT dl.cd_nomenclature::TEXT = '4'::TEXT |
| 40 | + OR s.id_nomenclature_diffusion_level IS NULL) |
| 41 | + AND st.cd_nomenclature::TEXT = 'Pr'::TEXT) |
| 42 | +SELECT d.id_synthese |
| 43 | + , d.id_dataset |
| 44 | + , d.cd_nom |
| 45 | + , d.dateobs |
| 46 | + , d.observateurs |
| 47 | + , d.altitude_retenue |
| 48 | + , d.the_geom_point |
| 49 | + , d.effectif_total |
| 50 | + , c.insee |
| 51 | + , diffusion_level |
| 52 | +FROM obs_data d |
| 53 | + JOIN atlas.l_communes c ON st_intersects(d.the_geom_point, c.the_geom); |
0 commit comments