web-dev-qa-db-fra.com

Nombre, regroupement et ordre SQLite par nombre

J'ai une table qui ressemble à ceci:

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, je voudrais obtenir le nombre de fois où chaque barre est apparue dans le tableau .. donc, 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.

33
pootzko
SELECT foo, count(bar) FROM mytable GROUP BY bar ORDER BY count(bar) DESC;

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

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

44
Edgar Velasquez Lim