Message posté par : T. Rossini
----------------------------------------
Voici la requête modifiée qui prends en compte votre besoin de vraiment détailler
les différences entre les tags (plus corrections de coquilles).
J'ai tout de même conservé des types booleens pour votre typologie, je pense
que cela est plus pertinent car plus simple à manipuler.
Si vous tenez à avoir une représentation textuelle, vous pouvez créer une vue qui
exploitera cette table
et utiliser ces champs booléees dans une expression CASE.
-----------------
Code :
SELECT
d.osm_id, d.vnode, d.tags, d.lat, d.lon,
d.vnode+1,
d.lat <> l.lat OR d.lon <> l.lon AS deplacement,
EXISTS(
SELECT
1
FROM
each(d.tags) AS a
JOIN
each(l.tags) AS b
USING (key)
WHERE
a.value <> b.value
) AS modifications_tags,
EXISTS(
SELECT
1
FROM
each(d.tags) AS a
LEFT JOIN
each(l.tags) AS b
USING (key)
WHERE
b.value IS NULL
) AS enrichissement_tags,
EXISTS(
SELECT
1
FROM
each(d.tags) AS a
RIGHT JOIN
each(l.tags) AS b
USING (key)
WHERE
a.value IS NULL
) AS suppression_tags
FROM
histpolice_donneevectimport d
CROSS JOIN LATERAL
(SELECT
*
FROM
testhist_police h
WHERE
d.osm_id = h.osm_id
ORDER BY
vnode DESC
LIMIT 1
) AS l
-----------------
La clause INSERT ne marchera que quand votre table testhist_police contiendra les mêmes
colonnes que la clause SELECT.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=344419#p344419
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net