#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
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