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é ?

#1 Fri 06 February 2026 23:10

Tibo_CCVG86
Juste Inscrit !
Date d'inscription: 19 May 2022
Messages: 6

QGIS: Etiquette avec N champs de relation de table

Bonjour,

J'ai créé une relation n-n avec une couche shp "commune" et une table "MED" avec les professionnels de santé. Le champ de jointure est le Code INSEE

J'arrive à afficher soit le liste des valeurs uniques des professions, soit le nombre de professionnel mais j'aimerai afficher la somme par type de professionnel.

Code:

"NOM"  || ' : \n'  ||  
relation_aggregate( 'REL_MED','concatenate_unique' ,"Profession",'\n')

Merci d'avance pour votre aide.

Hors ligne

 

#2 Mon 09 February 2026 08:29

Tibo_CCVG86
Juste Inscrit !
Date d'inscription: 19 May 2022
Messages: 6

Re: QGIS: Etiquette avec N champs de relation de table

Bonjour,

Si je pose la question différemment : comment utilisé un "gourp_by avec "relation_aggregate" ?

Merci

Hors ligne

 

#3 Mon 09 February 2026 11:40

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 1055

Re: QGIS: Etiquette avec N champs de relation de table

Pourquoi une relation n-n ?
1 commune a plusieurs professionnels de santé, mais 1 professionnel de santé n'a qu'une seule commune de rattachement, non ?
Pour moi, ce serait une relation 1-n (1 commune = n professionnels de santé).

Sinon, je ne maitrise pas personnellement la syntaxe relation_aggregate() dans les expressions QGis.
Par contre, je maitrise le SQL de base, et ce genre d'info se récupère assez facilement via des jointures SQL, possibles sur des SHP ou Tables d'un projet QGis.

Par exemple :

Code:

SELECT    c.nom_commune,
        m.profession,
        count(*) AS nb_med
FROM    commune c
JOIN    med m ON c.code_insee = m.code_insee
GROUP BY c.nom_commune,
        m.profession;

Ce qui permet d'obtenir une table comme ceci :

Code:

| nom_commune    | profession            | nb_med |
--------------------------------------------------
| Groville       | Ostéopathe            |   51   |
| Groville       | Médecin généraliste   |  114   |
| Mufflins       | Médecin généraliste   |   21   |
| Mufflins       | Dermatologue          |    8   |
| Grugnon        | Médecin généraliste   |    7   |

Sylvain M.

Hors ligne

 

#4 Mon 09 February 2026 11:54

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 1055

Re: QGIS: Etiquette avec N champs de relation de table

Et ensuite, pour avoir une table avec 1 seule ligne par commune et les statistiques globales des professions, vous pouvez faire cette requête sur la table précédemment créée (nommée ici "med_stats_com")

Code:

SELECT    nom_commune,
        group_concat(profession || ' (' || nb_med || ')', ', ') AS stats_med
FROM    med_stats_com
GROUP BY nom_commune;

Et vous aurez cette table :

Code:

| nom_commune    | stats_med                                   |
--------------------------------------------------------------
| Groville       | Ostéopathe (51), Médecin généraliste (114)  |
| Mufflins       | Médecin généraliste (21), Dermatologue (8)  |    
| Grugnon        | Médecin généraliste (7)                     |

Dernière modification par Sylvain M. (Mon 09 February 2026 11:56)


Sylvain M.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo