adapt requete for not use source table infraction_rnn
This commit is contained in:
parent
9ce2809804
commit
ccf224418b
@ -7,74 +7,76 @@ sql = '''
|
|||||||
DROP VIEW IF EXISTS police.v_infraction_rnn;
|
DROP VIEW IF EXISTS police.v_infraction_rnn;
|
||||||
|
|
||||||
CREATE VIEW police.v_infraction_rnn AS
|
CREATE VIEW police.v_infraction_rnn AS
|
||||||
WITH photos as (
|
WITH photos AS (
|
||||||
SELECT
|
SELECT infraction_rnn.json_data ->> '__Submissions-id'::text AS "__Submissions-id",
|
||||||
json_data->>'__Submissions-id'::text "__Submissions-id",
|
json_agg((('https://odk2.cen-isere.fr/v1/projects/6/forms/infraction_rnn/submissions/'::text || (infraction_rnn.json_data ->> '__Submissions-id'::text)) || '/attachments/'::text) || (infraction_rnn.json_data ->> 'photos'::text)) AS photos
|
||||||
json_agg('https://odk2.cen-isere.fr/v1/projects/6/forms/infraction_rnn/submissions/'||(json_data->>'__Submissions-id'::text)||'/attachments/'||(json_data->>'photos')::text) photos
|
FROM (
|
||||||
FROM police.infraction_rnn
|
select row_to_json(t.*) json_data
|
||||||
WHERE tablename = 'photos_repeat'
|
from police.infraction_rnn_photos_repeat_data t
|
||||||
group by json_data->>'__Submissions-id'::text
|
) infraction_rnn
|
||||||
), strip_infra as (
|
GROUP BY (infraction_rnn.json_data ->> '__Submissions-id'::text)
|
||||||
SELECT
|
), strip_infra AS (
|
||||||
inf.json_data->>'__Submissions-id' "__Submissions-id",
|
SELECT inf_1.json_data ->> '__Submissions-id'::text AS "__Submissions-id",
|
||||||
json_data->>'__id' "__id",
|
inf_1.json_data ->> '__id'::text AS __id,
|
||||||
json_strip_nulls(inf.json_data) json_data
|
json_strip_nulls(inf_1.json_data) AS json_data
|
||||||
FROM police.infraction_rnn inf
|
FROM (
|
||||||
WHERE inf.tablename = 'multiple_infract'
|
select row_to_json(t.*) json_data
|
||||||
), key_infra as (
|
from police.infraction_rnn_multiple_infract_data t
|
||||||
select
|
) inf_1
|
||||||
json_data->>'__Submissions-id' "__Submissions-id",
|
), key_infra AS (
|
||||||
json_data->>'__id' "__id",
|
SELECT strip_infra.json_data ->> '__Submissions-id'::text AS "__Submissions-id",
|
||||||
json_object_keys(json_data::json) data_keys
|
strip_infra.json_data ->> '__id'::text AS __id,
|
||||||
from strip_infra
|
json_object_keys(strip_infra.json_data) AS data_keys
|
||||||
), key_infra_agg as (
|
FROM strip_infra
|
||||||
select
|
), key_infra_agg AS (
|
||||||
"__Submissions-id","__id", array_agg(data_keys) data_keys
|
SELECT key_infra."__Submissions-id",
|
||||||
from key_infra
|
key_infra.__id,
|
||||||
group by 2,1
|
array_agg(key_infra.data_keys) AS data_keys
|
||||||
|
FROM key_infra
|
||||||
|
GROUP BY key_infra.__id, key_infra."__Submissions-id"
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT inf.json_data ->> '__id'::text AS id_infraction,
|
||||||
inf.json_data->>'__id'::text id_infraction,
|
split_part(sub.data_id, ':'::text, 2)::uuid AS id_submission,
|
||||||
split_part(sub.data_id,':',2)::uuid id_submission,
|
sub."submitterName" AS digitiser,
|
||||||
"submitterName" digitiser,
|
sub.catego_controle,
|
||||||
catego_controle,
|
sub.catego_sensibil,
|
||||||
catego_sensibil,
|
sub.autre_catego_sensi,
|
||||||
autre_catego_sensi,
|
sub.autre_type_sanct,
|
||||||
autre_type_sanct,
|
inf.json_data ->> 'catego_infract'::text AS catego_infract,
|
||||||
inf.json_data->>'catego_infract'::text catego_infract,
|
inf.json_data ->> key_infra_agg.data_keys[1] AS nature_infra,
|
||||||
inf.json_data->>key_infra_agg.data_keys[1] nature_infra,
|
CASE
|
||||||
case when SPLIT_PART(key_infra_agg.data_keys[3],'_',1) = 'natinf'
|
WHEN split_part(key_infra_agg.data_keys[3], '_'::text, 1) = 'natinf'::text THEN inf.json_data ->> key_infra_agg.data_keys[2]
|
||||||
then inf.json_data->>key_infra_agg.data_keys[2]
|
ELSE NULL::text
|
||||||
else null
|
END AS code_catego,
|
||||||
end code_catego,
|
CASE
|
||||||
case when SPLIT_PART(key_infra_agg.data_keys[3],'_',1) = 'natinf'
|
WHEN split_part(key_infra_agg.data_keys[3], '_'::text, 1) = 'natinf'::text THEN inf.json_data ->> key_infra_agg.data_keys[3]
|
||||||
then inf.json_data->>key_infra_agg.data_keys[3]
|
ELSE inf.json_data ->> key_infra_agg.data_keys[2]
|
||||||
else inf.json_data->>key_infra_agg.data_keys[2]
|
END AS code_infra,
|
||||||
end code_infra,
|
inf.json_data ->> 'descrpt_infract'::text AS descrpt_infract,
|
||||||
inf.json_data->>'descrpt_infract'::text descrpt_infract,
|
sub."Commentaire_remarque_nombre_de_tentes",
|
||||||
"Commentaire_remarque_nombre_de_tentes",
|
sub."Conformit_du_contr_le",
|
||||||
"Conformit_du_contr_le",
|
sub.day AS date,
|
||||||
"day" "date",
|
sub.heure,
|
||||||
"heure",
|
sub.infract_nb,
|
||||||
infract_nb,
|
sub.nat_operation,
|
||||||
nat_operation,
|
sub.nature_pers,
|
||||||
nature_pers,
|
sub.nb_pers_control,
|
||||||
nb_pers_control,
|
sub.nb_pers_sensibil,
|
||||||
nb_pers_sensibil,
|
sub.nb_verb,
|
||||||
nb_verb,
|
sub.nom_agent,
|
||||||
nom_agent,
|
sub.type_sanct,
|
||||||
type_sanct,
|
ph.photos,
|
||||||
ph.photos,
|
sub."submissionDate" AS date_saisie,
|
||||||
"submissionDate" date_saisie,
|
sub."updatedAt" AS date_maj,
|
||||||
"updatedAt" date_maj,
|
st_force2d(st_geomfromgeojson(replace(COALESCE(sub.geom, sub.point_carte), '\\'::text, ''::text)))::geometry(Geometry,4326) AS geom
|
||||||
st_force2d(st_geomfromgeojson(replace(COALESCE(geom,point_carte),'\\','')))::geometry(geometry, 4326) AS geom
|
FROM police.infraction_rnn_submissions_data sub
|
||||||
FROM police.infraction_rnn_submissions_data AS sub
|
JOIN strip_infra inf ON sub.data_id = inf."__Submissions-id"
|
||||||
JOIN strip_infra inf ON sub.data_id::text = inf."__Submissions-id"::text
|
JOIN key_infra_agg ON inf.__id = key_infra_agg.__id
|
||||||
join key_infra_agg on inf.__id = key_infra_agg.__id
|
JOIN photos ph ON sub.data_id = ph."__Submissions-id"
|
||||||
JOIN photos ph ON sub.data_id::text = ph."__Submissions-id"::text
|
ORDER BY (split_part(sub.data_id, ':'::text, 2)::uuid), (inf.json_data ->> '__id'::text)
|
||||||
ORDER BY 2,1 ;
|
;
|
||||||
|
|
||||||
GRANT SELECT ON TABLE police.infraction_rnn TO grp_police;
|
GRANT SELECT ON TABLE police.v_infraction_rnn TO grp_police;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
with con_odk.begin() as cnx:
|
with con_odk.begin() as cnx:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user