46 votes

Compte SQLite, groupe et ordre par compte

J'ai un tableau qui ressemble à ça :

 FOO  BAR  BAZ
----+----+----
foo1 bar1 baz1
foo2 bar3 baz2
foo3 bar1 baz3
foo4 bar1 baz4
foo5 bar3 baz5
foo6 bar1 baz6
foo7 bar2 baz7

Et par conséquent, j'aimerais savoir combien de fois chaque barre est apparue dans le tableau. Ainsi, la sortie que je recherche ressemble à ceci :

 BAR   COUNT
-----+-----
bar1    4
bar3    2
bar2    1

Puis-je faire une requête pour quelque chose comme ça dans SQLite ? Je suppose que cela devrait être assez facile, mais je ne suis en aucun cas un programmeur SQL et j'ai juste besoin de cette simple requête dans le cadre d'un script python. Merci.

63voto

Edgar Velasquez Lim Points 2296
SELECT foo, count(bar) FROM mytable GROUP BY bar ORDER BY count(bar) DESC;

L'instruction group by indique aux fonctions d'agrégat de regrouper l'ensemble de résultats par une colonne. Dans ce cas "grouper par barre" dit compter le nombre de champs dans la colonne barre, regroupés par les différents "types" de barre.

Une meilleure explication est ici : http://www.w3schools.com/sql/sql_groupby.asp

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X