#1 Fri 25 March 2022 11:45
- Raf
- Participant occasionnel
- Date d'inscription: 25 Oct 2019
- Messages: 17
QGIS: Comptage d'entite par valeur de champ
Bonjour à vous.
J'ai deux couches : une couche de commune et une couche de mobilier archéologie avec un champ de n° Insee pour faire une relation et un champ de type de mobilier (céramique, fer etc...).
J'aimerais, pour chaque commune, obtenir le décompte de chaque entité par type de mobilier en utilisant l'expression
relation_aggregate('Ma_relation', 'count', 'Type_de_Mob', "ceramique(par exemple)")
Mais je n'arrive pas à filtrer le comptage correctement. Il ne me trouve que le décompte de chaque entité de mobilier par commune.
Auriez vous une solution?
Merci d'avance
Hors ligne
#2 Fri 25 March 2022 12:01
- sylvainSIG
- Participant assidu
- Lieu: Moissac
- Date d'inscription: 29 Nov 2018
- Messages: 265
Re: QGIS: Comptage d'entite par valeur de champ
Hello,
Essayes avec :
Code:
aggregate(layer:='tonlayer', aggregate:='count', expression:="tonchampmobilier", filter:="insee"
C'est l'équivalent ou presque de la requête PGSQL :
Code:
SELECT insee, count(insee) FROM tatable GROUP BY insee ORDER BY insee
Dernière modification par sylvainSIG (Fri 25 March 2022 12:04)
Hors ligne
#3 Fri 25 March 2022 12:27
- Raf
- Participant occasionnel
- Date d'inscription: 25 Oct 2019
- Messages: 17
Re: QGIS: Comptage d'entite par valeur de champ
Ce n'est pas ce que je cherche.
je ne veux pas le nombre de commune, je veux le nombre d'entité par commune par valeur de l'entité.
En gros en SQL, ca donnerait plutot
select 'commune_nsee', count(type_mobilier)
from 'commune', 'mobilier'
where 'commune_insee' = 'mobilier_insee'
group by 'commune_insee', 'type_mobilier'
mais en créant un champ de comptage pour chaque type de mobilier
Dernière modification par Raf (Fri 25 March 2022 12:36)
Hors ligne
#4 Wed 28 September 2022 07:51
- PhilCAD64
- Participant occasionnel
- Date d'inscription: 26 Nov 2013
- Messages: 32
Re: QGIS: Comptage d'entite par valeur de champ
J'ai actuellement le même problème. Je pose ici ce que j'ai tenté et ce que ça donne:
Couche 1 - linéaire - des Tronçons
Couche 2 - points - des anomalies avec un attribut gravité de 1 à 3
(mon champ GRAVITE est un champ virtuel mais en testant avec un champ classique ça ne change rien)
- 1
aggregate(layer:= 'Couche2', aggregate:='count',expression:="GRAVITE"='1', filter:="CHAMPCOMMUN2"=attribute(@parent,'CHAMPCOMMUN1' ))
Ça me compte le nombre total des éléments du champ commun mais pas dont la GRAVITE est = 1
- 2
aggregate(layer:= 'Couche2', aggregate:='count',expression:="CHAMPCOMMUN2"=attribute(@parent,'CHAMPCOMMUN1' ), filter:="GRAVITE"='1')
Ça me compte le nombre total des éléments dont la GRAVITE est = 1 dans l'ensemble de ma couche2
Dernière modification par PhilCAD64 (Wed 28 September 2022 08:30)
Hors ligne
#5 Wed 28 September 2022 09:00
- PhilCAD64
- Participant occasionnel
- Date d'inscription: 26 Nov 2013
- Messages: 32
Re: QGIS: Comptage d'entite par valeur de champ
Je viens de trouvé en tâtonnant:
aggregate(layer:= 'Couche2', aggregate:='count',expression:='1', filter:="CHAMPCOMMUN2"=attribute(@parent,'CHAMPCOMMUN1' ) and "GRAVITE='1')
du coup expression n'a pas d'importance pour un count
Hors ligne