2011-07-19 64 views
24

組,爲了我有一個表,看起來像這樣:SQLite的計數,按計數

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腳本的一部分。謝謝。

回答

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

group by語句告訴集合函數按列分組結果。在這種情況下,「group by bar」表示根據bar的不同「類型」對bar欄中的字段數進行計數。

一個更好的解釋是在這裏:http://www.w3schools.com/sql/sql_groupby.asp

+3

差不多..但讓我在正確的軌道上。謝謝!這裏是一個完整的解決方案,以防有人需要它:「SELECT bar,count(bar)FROM mytable GROUP BY bar ORDER BY count(bar)DESC」 – pootzko

+2

實際上,重複計數(bar)兩次,您應該使用「AS」語句:「SELECT foo,count(bar)AS tot_bar_count FROM mytable GROUP BY bar ORDER BY tot_bar_count DESC;」 –