Подтвердить что ты не робот

SQLite count, group и order by count

У меня есть таблица, которая выглядит так:

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

И в результате я хотел бы подсчитать, сколько раз каждый столбец появлялся в таблице.. так что вывод, который я ищу, выглядит следующим образом:

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

Можно ли сделать запрос для чего-то подобного в SQLite? Я думаю, это должно быть довольно легко, но я не программист SQL никоим образом, и мне просто нужен этот простой запрос как часть python script.. Спасибо.

4b9b3361

Ответ 1

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

Оператор group by statement сообщает агрегированным функциям, чтобы группировать результирующий набор по столбцу. В этом случае "группа за баром" говорит, подсчитывает количество полей в столбце столбца, сгруппированных по разным "типам" столбца.

Лучшее объяснение здесь: http://www.w3schools.com/sql/sql_groupby.asp