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

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

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

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 - 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 - group-by
Télécharger ce cours au format PDF