banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 17 September 2010 10:12

Dwhant
Juste Inscrit !
Date d'inscription: 13 Sep 2010
Messages: 9

Sélection d'une valeur Maximale par zone

Bonjour à tous,

Après une recherche non fructueuse (j'ai peut mal cherché), je sèche sur une requête dont le but est le suivant :

J'ai 2 couches :
- 1 couche communes avec le recensement de population INSEE
- 1 couche de regroupement de communes.

Je cherche à sélectionner la commune la plus peuplée de chaque regroupement de commune.

J'ai tenté d'utiliser l'opérateur "Max()" et de trier par colonnes "nom de mon regroupement" mais le champ n'est pas défini selon Map Info...

Une petite aide pour un galérien serait super.

Dwhant

Hors ligne

 

#2 Fri 17 September 2010 13:23

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Sélection d'une valeur Maximale par zone

Bonjour
La table "communes" doit être munie du nom du regroupement (ou du code) auquel appartient chaque commune ET doit être triée dans l'ordre descendant de population...A ces conditions, la requête (FMB) suivante marchera:
Select INSEE_Comm, Nom_Comm, Max(Population), Nom_groupement from COMMUNE group by Nom_groupement

Hors ligne

 

#3 Fri 17 September 2010 13:25

SPujol
Participant actif
Lieu: Villeneuve d'Ascq
Date d'inscription: 10 Jan 2008
Messages: 61

Re: Sélection d'une valeur Maximale par zone

bonjour,

table_1=couche commune
table_2=couche de regroupement


select table_2.code,table_1.nom,table_1.pop
from table_1,table_2
where table_1.obj within table_2.obj and table_1.pop=any(select Max(table_1.pop)
                                                                                  from table_1,table_2
                                                                                  where table_1.obj within table_2.obj
                                                                                  group by table_2.code)
group by table_2.code
into Test

Ceci devrait fonctionner. Pour l'écrire dans la fenetre MapBasic écrivez tout d'un trait sans les retours à la ligne. N'oubliez pas le "browse * from Test" dans ce cas là pour voir vos résultats.

Cordialement.

PS: Désolé je n'avais pas vu la réponse de Maurice

Dernière modification par SPujol (Fri 17 September 2010 13:26)


Sylvain PUJOL (Collecte Localisation Satellite - CLS)

Hors ligne

 

#4 Fri 17 September 2010 13:27

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: Sélection d'une valeur Maximale par zone

Salut

J'ai une idée mais elle pourrait être améliorée par d'autre.
Ce qu'il faut:
Dans ta table commune : Nom de la commune et population
Dans la table groupement de commune : Nom du regroupement

Dans une sélection SQL
Colonne : Nom de la commune, population et nom du regroupement
Table : Commune, regroupement
Critère : object regroupement contien objet commune
Trier : par population

En théorie, ça devrait donner un bon résultat!

Daniel


De retour à la géomatique

Hors ligne

 

#5 Fri 17 September 2010 15:07

Dwhant
Juste Inscrit !
Date d'inscription: 13 Sep 2010
Messages: 9

Re: Sélection d'une valeur Maximale par zone

Merci à vous ! J'ai réussi en suivant la méthodo de Maurice à sortir ce que je souhaitais.
(Ceci dit, la commande "Max()" doit se retrouver facultative, du fait du triage par ordre décroissant des populations des communes ?, j'arrive au même résultat avec ou sans).

Et comme j'en ai profité pour le découvrir, j'en fait profiter ceux qui éventuellement ne le sauraient pas (même si vous devez être ok là dessus !), pour trier une colonne par ordre décroissant, sélectionner une table et dans order by : mentionner le nom de la colonne puis [espace]DESC. Et ça marche.

Merci encore.

Dwhant.

Dernière modification par Dwhant (Fri 17 September 2010 15:07)

Hors ligne

 

#6 Fri 17 September 2010 15:18

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: Sélection d'une valeur Maximale par zone

Dwhant,

Afin de vérifier si c'est la fonction Max() est facultative ou pas...Peux-tu vérifier si la commune la plus peupler fait partie du regroupement le plus peuplé, la deuxième commune avec le deuxième regroupement et ainsi de suite. Il y a surment une certaine corrélation, mais à savoir si elle est représentative à 100% des cas?

ex  : Il a de bonne chance que le département le plus peuplé soit celui avec la plus grande ville....mais pas toujours

JF

Dernière modification par jean94 (Fri 17 September 2010 15:20)

Hors ligne

 

#7 Fri 17 September 2010 15:36

Dwhant
Juste Inscrit !
Date d'inscription: 13 Sep 2010
Messages: 9

Re: Sélection d'une valeur Maximale par zone

Salut,

J'ai fait la requête pour comparer (pièce jointe):
1 - Colonne de la population municipale (par défaut la première qu'il trouve dans la table grâce au tri descendant si je ne me trompe pas)
2 - La population municipale trouvée avec l'outil "Max()"
3 - La somme des populations des communes par regroupement de commune.

Donc, cela se vérifie finalement pas si souvent que cela. Mais je peine à comprendre quelle était ta pensée ?

Dwhant


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#8 Fri 17 September 2010 15:56

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: Sélection d'une valeur Maximale par zone

C'est bien, une erreur d'interprétation de ma part.

Je croyais que vous voulier l'inverse..les département en ordre croissant avec la ville la plus populeuse.

Cela dit, ma remarque était que si vous faites un graphique de la population de vos villes en ordonnée et la population de vos département en abcisse vous aurez une coefficient de corrélation très élevé, et donc vérifier que les données était bien trié comme voulu (ne pas se fier au triage uu premier coup d'oeil), cela était ma remarque. Et ne s'applique pas dans votre cas puisque vous voulez l'inverse.

JF

Hors ligne

 

Pied de page des forums

Powered by FluxBB