Message posté par : lili55 (leblanc.ingrid(a)gmail.com)
----------------------------------------
Bonjour,
cela fait quelques jours que je cherche une solution à une requête sql
l'objectif est d'avoir une vue avec cette structuration :
vue_evolution_demographique
id | geom (centroïde dans le polygone) | nom_commune | code_insee |
annee_dernier_recensement | population_dernier_recensement |
annee_avant_dernier_recensement | population_avant_dernier_recensement |
evolution_population
La requête sql est ok sauf pour la dernière colonne "evolution_population" elle
reste NULL ... alors que j'aimerai qu'elle indique l'évolution démographique
entre les 2 derniers recensements.
Voici la structuration des tables nécessaire pour réaliser la vue :
limite_commune :
id | geom | nom_commune |code_insee
recensement_population:
id | nom_commune | code_insee | population | annee
et voici la requête sql :
SELECT * from
(select row_number() OVER () AS id,
limite_reference_limite_communale.planche,
limite_reference_limite_communale.nom,
st_pointonsurface(limite_reference_limite_communale.the_geom)::geometry(Point,3948) AS
the_geom
from public.limite_reference_limite_communale) l1
LEFT JOIN (
select
recensement_population.planche,
recensement_population.annee as annee_dernier_recensement,
recensement_population.population as population_dernier_recensement
from donnees_metiers.recensement_population
where annee = (select max(annee) from donnees_metiers.recensement_population)) l2
USING (planche)
LEFT JOIN (
select
recensement_population.planche,
recensement_population.annee as annee_avant_dernier_recensement,
recensement_population.population as population_avant_dernier_recensement
--recensement_population.population as evolution_population
from donnees_metiers.recensement_population
where annee = (select max(annee) from donnees_metiers.recensement_population)) l3
USING (planche)
LEFT JOIN (
select
recensement_population.planche,
recensement_population.population as evolution_population
from donnees_metiers.recensement_population
where annee = ((select max(annee) from donnees_metiers.recensement_population)
-
(select (max(annee)-1) from donnees_metiers.recensement_population)
)) l4
using (planche)
Si vous pouviez m'aiguiller pour la dernière étape :-)
merci d'avance
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=361294#p361294
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