#1 Fri 08 October 2021 16:04
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 203
jointure sur predicat geométrique
Bonjour,
Ma question va vraiment paraitre bĂȘte mais bon. J'ai du mal avec la logique des types de jointure couplĂ© au prĂ©dicat gĂ©omĂ©trique.
J'ai une table A (4000 objets à l'intérieure B) et une table B (19 000 objets)
Je veux selectionner tous les éléments de B et prendre les éléments de A contenu dans B en ne prenant que les valeurs max pour le champ date de A grouper selon l'identifiant de B (en gros si j'ai deux points A dans un polygone B je veux que seule la valeur max soit prise en compte ).
j'ai fait une requĂȘte :
Code:
select b.id, max(a.date_obs) from tableB b LEFT JOIN tableA a ON st_within(a.geom,b.geom) group by b.id
et je me retrouve avec seulement 1960 objets , alors que j'en attends 19 000 dont 4000 avec une valeur de dates non nulle.
Dernière modification par neskuik01 (Fri 08 October 2021 16:24)
Hors ligne
#2 Fri 08 October 2021 16:24
- Ben22
- Participant actif
- Lieu: 33
- Date d'inscription: 11 May 2016
- Messages: 97
Re: jointure sur predicat geométrique
Bonjour,
Personnellement, je dĂ©composerai avec une sous requĂȘte :
Code:
WITH hello AS (SELECT b.id, max(a.date) as max_date FROM b JOIN a ON st_within(a.the_geom, b.the_geom) GROUP BY b.id) -- uniquement les valeur datemax pour chaque b en contenant SELECT b.id, hello.max_date FROM b LEFT JOIN hello ON b.id = hello.id -- je les joint aux autres valeurs b
En espérant avoir bien saisi le résultat que vous attendiez...
Bien Ă vous
Hors ligne
#3 Fri 08 October 2021 16:35
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 203
Re: jointure sur predicat geométrique
Bonjour,
Personnellement, je dĂ©composerai avec une sous requĂȘte :Code:
WITH hello AS (SELECT b.id, max(a.date) as max_date FROM b JOIN a ON st_within(a.the_geom, b.the_geom) GROUP BY b.id) -- uniquement les valeur datemax pour chaque b en contenant SELECT b.id, hello.max_date FROM b LEFT JOIN hello ON b.id = hello.id -- je les joint aux autres valeurs bEn espérant avoir bien saisi le résultat que vous attendiez...
Bien Ă vous
Parfait
!
Hors ligne

