view zh v2
This commit is contained in:
parent
bfcc86a5a7
commit
9543915c73
@ -1,27 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 -*-.
|
||||
|
||||
from sqlalchemy import create_engine, text
|
||||
from sqlalchemy.engine import URL
|
||||
from sqlalchemy import text
|
||||
from datetime import datetime as dt
|
||||
import pandas as pd
|
||||
import geopandas as gpd
|
||||
|
||||
|
||||
# Parametres bdd
|
||||
user = 'cen_admin'
|
||||
pwd = '#CEN38@venir'
|
||||
adr = '91.134.194.221'
|
||||
port = '5432'
|
||||
base = 'azalee'
|
||||
|
||||
url = URL.create('postgresql+psycopg2',
|
||||
username=user,
|
||||
password=pwd,
|
||||
host=adr,
|
||||
database=base,
|
||||
)
|
||||
con = create_engine(url)
|
||||
from pycen import con
|
||||
|
||||
drop_v_zh = 'DROP VIEW IF EXISTS zones_humides.v_zoneshumides CASCADE;'
|
||||
with con.begin() as cnx:
|
||||
@ -216,7 +199,7 @@ SELECT DISTINCT ON (id_site)
|
||||
int_patri,
|
||||
"val_socioEco"
|
||||
FROM crosstab(
|
||||
$$WITH auteur AS (
|
||||
$$ WITH auteur AS (
|
||||
SELECT DISTINCT ON (id_sitefct)
|
||||
c.id_sitefct,
|
||||
string_agg(c1.auteur,';' ORDER BY c1.auteur) auteur
|
||||
@ -224,26 +207,41 @@ FROM crosstab(
|
||||
JOIN personnes.v_personne c1 ON c1.id = c.id_auteur
|
||||
GROUP BY c.id_sitefct
|
||||
ORDER BY 1
|
||||
)
|
||||
SELECT
|
||||
--a.id_geom_site::bigint,
|
||||
id_site,
|
||||
d.auteur,
|
||||
MAX(a.date) date,
|
||||
c.nom_court type_param,
|
||||
string_agg(
|
||||
CASE WHEN a.description IS NULL THEN b.nom
|
||||
WHEN a.description = '' THEN b.nom
|
||||
ELSE CONCAT(b.nom,' (',a.description,')') END,
|
||||
), tmp_select as (
|
||||
SELECT
|
||||
id_site,
|
||||
(SELECT regexp_split_to_table(auth,',') FROM (values (string_agg(d.auteur,',' order by ROW()))) AS value(auth) Limit 1) auteur,
|
||||
MAX(a.date) date,
|
||||
c.nom_court type_param,
|
||||
b.nom,
|
||||
string_agg(DISTINCT a.description,'\n') remark
|
||||
FROM zones_humides.r_site_fctecosociopatri a
|
||||
JOIN (zones_humides.param_fct_eco_socio_patri b
|
||||
JOIN zones_humides.type_param_fct c ON b.id_type = c.id
|
||||
) ON a.id_fct = b.id
|
||||
JOIN auteur d ON d.id_sitefct = a.id
|
||||
WHERE a."valid"
|
||||
GROUP BY a.id_site,c.nom_court,b.nom
|
||||
ORDER BY a.id_site,c.nom_court DESC,b.nom
|
||||
)
|
||||
SELECT
|
||||
id_site,
|
||||
|
||||
string_agg(
|
||||
DISTINCT CASE WHEN extract(year from date)>'1'
|
||||
THEN auteur||'-'|| extract(year from date)
|
||||
ELSE auteur END,
|
||||
'; ') auteur,
|
||||
MAX(date) date,
|
||||
type_param,
|
||||
string_agg(distinct
|
||||
CASE WHEN remark IS NULL THEN nom
|
||||
WHEN remark = '' THEN nom
|
||||
ELSE CONCAT(nom,' (',remark,')') END,
|
||||
';') fct
|
||||
FROM zones_humides.r_site_fctecosociopatri a
|
||||
JOIN (zones_humides.param_fct_eco_socio_patri b
|
||||
JOIN zones_humides.type_param_fct c ON b.id_type = c.id
|
||||
) ON a.id_fct = b.id
|
||||
JOIN auteur d ON d.id_sitefct = a.id
|
||||
WHERE a."valid"
|
||||
GROUP BY a.id_site,d.auteur,c.nom_court
|
||||
ORDER BY 1,4;$$,
|
||||
FROM tmp_select
|
||||
GROUP BY 1,4
|
||||
ORDER BY 1,4,3;$$,
|
||||
$$SELECT DISTINCT nom_court FROM zones_humides.type_param_fct ORDER BY 1 ASC;$$
|
||||
) AS ct (
|
||||
"id_site" text,
|
||||
@ -289,22 +287,26 @@ FROM crosstab(
|
||||
SELECT
|
||||
--a.id_geom_site::bigint,
|
||||
id_site,
|
||||
d.auteur,
|
||||
string_agg(
|
||||
DISTINCT CASE WHEN extract(year from a.date)>'1'
|
||||
THEN d.auteur||'-'|| extract(year from a.date)
|
||||
ELSE d.auteur END,
|
||||
'; ') auteur,
|
||||
MAX(a.date) date,
|
||||
c.nom_court type_param,
|
||||
string_agg(
|
||||
CASE WHEN a.description IS NULL THEN b.nom
|
||||
WHEN a.description = '' THEN b.nom
|
||||
ELSE CONCAT(b.nom,' (',a.description,')') END,
|
||||
';') fct
|
||||
string_agg( DISTINCT
|
||||
CASE WHEN a.description IS NULL THEN b.nom
|
||||
WHEN a.description = '' THEN b.nom
|
||||
ELSE CONCAT(b.nom,' (',a.description,')') END,
|
||||
'; ') fct
|
||||
FROM zones_humides.r_site_critdelim a
|
||||
JOIN (zones_humides.param_delim_fct b
|
||||
JOIN zones_humides.type_param_delim_fct c ON b.id_type = c.id
|
||||
) ON a.id_crit_delim = b.id
|
||||
JOIN auteur d ON d.id_sitedelim = a.id
|
||||
WHERE a."valid"
|
||||
GROUP BY a.id_site,d.auteur,c.nom_court
|
||||
ORDER BY 1,2,3$$,
|
||||
GROUP BY 1,4
|
||||
ORDER BY 3,1,2$$,
|
||||
$$SELECT DISTINCT nom_court FROM zones_humides.type_param_delim_fct ORDER BY 1 DESC;$$
|
||||
) AS ct (
|
||||
"id_site" text,
|
||||
@ -583,7 +585,7 @@ with con.begin() as cnx:
|
||||
test = """
|
||||
SELECT * FROM zones_humides.v_zoneshumides;
|
||||
"""
|
||||
data = pd.read_sql_query(
|
||||
data = gpd.pd.read_sql_query(
|
||||
sql = text(test),
|
||||
con = con)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user