【问题标题】:SQLite Query - A short list of individual records which appear multiple times and ordered by the number of times they occur?SQLite 查询 - 出现多次并按出现次数排序的单个记录的简短列表?
【发布时间】:2014-04-24 03:46:19
【问题描述】:

假设我有一个包含以下记录的表:

ID Type Item
1 food apple
2 food apple
3 food orange
4 food apple
5 food banana
6 food banana
7 drink cola
8 drink water
9 food banana
10 food apple

如何构造一个查询,该查询将返回单列项目列表,这些项目仅属于类型:食物,并且仅包含在表中多次出现的每个项目的一次出现 - 最后按以下顺序排序它们在表格中出现的次数?

所以上表的结果将是以下列表:

  1. 苹果(4 次出现)
  2. 香蕉(出现 3 次)
  3. 橙色(出现 1 次)

谢谢。

【问题讨论】:

  • 使用countgroup by

标签: java android sql sqlite


【解决方案1】:

这个查询可以做到!

 select count(*) as Total ,item from tbl 
   where type='food'
    group by item order by Total desc;

还可以查看小提琴演示: http://sqlfiddle.com/#!2/5b3c6/3

【讨论】:

  • 啊,实际上它几乎可以工作,但也会返回我不想要的可乐和水记录,因为它们是 Type=drink 而不是 Type=food ...我从下面的答案中看到我需要添加 WHERE Type='food' 行。
【解决方案2】:

试试这个:

select Item, count(Item) as COUNT
FROM TableName
WHERE Type='food'
GROUP BY Item
ORDER BY COUNT DESC

结果:

ITEM    COUNT
apple   4
banana  3
orange  1

SQL Fiddle 中查看结果。

【讨论】:

    猜你喜欢
    • 2012-10-18
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2011-01-22
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多