Regrouper SQLite par
La clause GROUP BY de SQLite est utilisée avec l'instruction SELECT pour regrouper les mêmes données.
Dans l'instruction SELECT, la clause GROUP BY est placée après la clause WHERE et avant la clause ORDER BY.
Syntaxe
La syntaxe de base de la clause GROUP BY est donnée ci-dessous. La clause GROUP BY doit être placée après la condition dans la clause WHERE et avant la clause ORDER BY.
FROM nom_table
WHERE [conditions]
GROUP BY colonne1, colonne2....colonneN
ORDER BY colonne1, colonne2.... columnN
Vous pouvez utiliser plusieurs colonnes dans la clause GROUP BY. Assurez-vous que le regroupement que vous utilisez est répertorié dans la liste des colonnes.
Exemple
Supposons que la table COMPANY contienne les enregistrements suivants : ------- --------- ---------- - ---------
1 Paul 32 Californie 20000.04 Mark 25 Lundi 65000.0
5 David 27 Texas 85000.0
6 KIM 22 Sud ON 10000.0 <>
Si vous souhaitez connaître le salaire total de chaque client, vous pouvez utiliser la requête GROUP BY comme suit :
Cela produira les résultats suivants :
----------------- --
Allen 15000.0
David 85000.0
James 10000.0
Kim 45000.0
Mark 65000.0
Paul 20000.0
Teddy 20000.0
Maintenant, utilisons ce qui suit Instruction INSERT pour créer trois enregistrements supplémentaires dans la table COMPANY :
INSERT INTO COMPANY VALUES (9 , 'James', 44, 'Norvège', 5000.00 );
INSÉRER DANS LES VALEURS DE L'ENTREPRISE (10, 'James', 45, 'Texas', 5000.00 );
Maintenant, notre table contient des enregistrements avec des noms en double comme suit :
---------- ----- --- -- ---------- ---------- ----------
1 Paul 32 Californie 20000.0
2 Allen 25 Texas 15000.0
3 – >5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
8 Paul 24 Houston 20000.0
9 James 44 Norvège 5000.0
10 James 45 Texas 5000.0
Utilisons la même instruction GROUP BY pour regrouper tous les enregistrements par colonne NOM comme suit :
sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME;
Cela produira les résultats suivants :
---------- -----------
Allen 15000
David 85000
James 20000
Kim 45000
Mark 65000
Paul 40000
Teddy 20000
Utilisons la clause ORDER BY avec la clause GROUP BY comme suit :
FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;
Cela produira les résultats suivants :
- --------- ------
Nounours >David 85000
Allen 15000