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 Wed 22 May 2019 15:53

Simon Cro
Participant occasionnel
Date d'inscription: 3 Oct 2018
Messages: 42

QGIS: faire un double group_by dans les expressions

Bonjour à tous.

Je dispose d'une table de données contenant des observations, la date de chaque observation, ainsi que la commune d'observation.

Je souhaite créer un nouveau champ contenant le nombre d'observation par date et par commune.

J'ai déjà essayé de travailler avec la fonction sum(), mais je n'arrive pas à grouper les données plus d'une fois.
En principe il faudrait que la fonction puisse s'écrire comme ceci:

sum("observation", group_by:= "date_obs", "commune")

Malheureusement, ça n'a pas l'air d'être possible en l'état, et je vois pas comment faire

Je ne peux pas utiliser une formule SQL car je n'arrive pas à me servir de l'interface (DB manager m'indique des erreurs de syntaxe que je trouve incompréhensibles).

Si vous connaissez une solution, je vous remercie par avance pour votre aide.

Hors ligne

 

#2 Wed 22 May 2019 17:51

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS: faire un double group_by dans les expressions

Bonjour,
En restant sur votre logique (même si une couche virtuelle serait plus lisible), quid en concaténant les deux champs dans une expression (non testée), en s'assurant que les combinaisons observation<->communes sont uniques

Code:

sum("observation", group_by:= concat("date_obs", '-', "commune"))

Hors ligne

 

#3 Thu 23 May 2019 14:08

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: faire un double group_by dans les expressions

En SQL :

ajouter un champ "nombre". Remplissez-le avec 1 partout avec la calculatrice de champs.

Expression : Select  commune, date, sum(nombre) as nb  from couche group by commune, date

Chargez en tant que nouvelle couche.

On peut faire aussi : Select  commune, date, count(date) as nb  from couche group by commune, date
Ça évite d'ajouter le champ nombre au préalable.

Dernière modification par carteq (Thu 23 May 2019 14:12)

Hors ligne

 

#4 Fri 24 May 2019 09:55

Simon Cro
Participant occasionnel
Date d'inscription: 3 Oct 2018
Messages: 42

Re: QGIS: faire un double group_by dans les expressions

Bonjour.

J'ai testé les deux solutions proposées, elles fonctionnent toutes les deux.
Merci pour votre aide.

Simon Cro

Hors ligne

 

Pied de page des forums

Powered by FluxBB