Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

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

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