Google Sheets QUERY : grouper des données

GROUP BY

En utilisant GROUP BY avec les fonctions d'agrégat (vues à la page précédente), il est possible d'obtenir des résultats groupés au lieu d'un résultat unique pour l'ensemble des données.

Pour grouper les données à retourner, ajoutez GROUP BY suivi des données à grouper.


Dans cette base de données de test, chaque utilisateur dispose d'un rang (D) allant de 0 à 2. Dans les prochains exemples, les utilisateurs seront groupés par rang.

GROUP BY + COUNT

Pour obtenir le nombre d'utilisateurs de chaque groupe, entrez :

=QUERY(BD!A1:G15;"SELECT COUNT(A) GROUP BY D")
google sheets fonction query count group by

Le nombre d'utilisateurs est bien affiché mais il faut encore ajouter la colonne D après SELECT pour savoir à quel rang correspond chaque valeur :

=QUERY(BD!A1:G15;"SELECT D, COUNT(A) GROUP BY D")
google sheets fonction query select group by

GROUP BY + SUM

Pour obtenir la somme des messages (E) de chaque groupe, entrez :

=QUERY(BD!A1:G15;"SELECT D, SUM(E) GROUP BY D")
google sheets fonction query sum group by

GROUP BY + AVG

Pour obtenir la moyenne des messages (E) de chaque groupe, entrez :

=QUERY(BD!A1:G15;"SELECT D, AVG(E) GROUP BY D")
google sheets fonction query avg group by

GROUP BY + MAX

Pour obtenir le plus grand nombre de messages (E) de chaque groupe, entrez :

=QUERY(BD!A1:G15;"SELECT D, MAX(E) GROUP BY D")
google sheets fonction query max group by

Utilisation avec plusieurs fonctions

Il est tout à fait possible d'utiliser plusieurs fonctions d'agrégat dans une même requête et d'ajouter une ou plusieurs conditions.

Par exemple pour obtenir différentes données pour chaque groupe en ignorant les utilisateurs avec 0 message, entrez :

=QUERY(BD!A1:G15;"SELECT D, COUNT(E), SUM(E), AVG(E), MAX(E), MIN(E) WHERE E > 0 GROUP BY D")
google sheets fonction query group by where