SQLite计数,组和按计数排序

poo*_*zko 33 sqlite sorting grouping counting

我有一个看起来像这样的表:

FOO  BAR  BAZ
----+----+----
foo1 bar1 baz1
foo2 bar3 baz2
foo3 bar1 baz3
foo4 bar1 baz4
foo5 bar3 baz5
foo6 bar1 baz6
foo7 bar2 baz7
Run Code Online (Sandbox Code Playgroud)

结果我想知道每个栏在表中出现的次数..所以,我正在寻找的输出看起来像这样:

BAR   COUNT
-----+-----
bar1    4
bar3    2
bar2    1
Run Code Online (Sandbox Code Playgroud)

我可以在SQLite中查询类似的内容吗?我想它应该很简单,但我不是一个SQL程序员,我只需要这个简单的查询作为python脚本的一部分..谢谢.

小智 45

SELECT foo, count(bar) FROM mytable GROUP BY bar ORDER BY count(bar) DESC;
Run Code Online (Sandbox Code Playgroud)

group by语句告诉聚合函数按列对结果集进行分组.在这种情况下,"按栏分组"表示计算条形列中的字段数,按条形的不同"类型"分组.

这里有一个更好的解释:http://www.w3schools.com/sql/sql_groupby.asp

  • 几乎......但让我走上了正确的轨道.谢谢!这是一个完整的解决方案,以防有人需要它:"SELECT bar,count(bar)FROM mytable GROUP BY bar ORDER BY count(bar)DESC" (4认同)
  • 实际上,相反重复count(bar)两次,你应该使用"AS"语句:"SELECT foo,count(bar)AS tot_bar_count FROM mytable GROUP BY bar ORDER BY tot_bar_count DESC;" (4认同)