假设我有一个带有属性X的表A. 如何找到出现次数最多的X? (可能有多个具有相同的最高发生率)
即。 表A
X
--
'a'
'b'
'c'
'c'
'b'
我想回来
X
--
'b'
'c'
我不能在Sqlite中使用关键字ALL,所以我不知所措。
我想到获取每个X的计数然后对它进行排序然后以某种方式使用ORDER BY DESC以使最大值位于顶部然后LIMIT进行比较以检查第一个元组下面的值是否相等(这意味着什么)它们也很常见但是我不确定LIMIT语法,如果我有这样的条件
请给出提示而不是答案,有没有我可以参考的资源,所以我可以找到方法?
答案 0 :(得分:6)
这将处理具有最大出现次数的多个值
SELECT X FROM yourTable
GROUP BY X
HAVING COUNT(*) = (
SELECT MAX(Cnt)
FROM(
SELECT COUNT(*) as Cnt
FROM yourTable
GROUP BY X
) tmp
)
答案 1 :(得分:4)
像
一样查询SELECT x,COUNT(x) AS cnt FROM a
GROUP BY x
ORDER BY cnt DESC;
并在cnt
更改时停止处理结果行。
答案 2 :(得分:0)
如果您不知道有多少条目可能共享相同的数量,则不能使用LIMIT
子句。
只需按照问题中的说明请求数据,但一次执行一次,并在返回的计数与上一行的计数不同时停止。
答案 3 :(得分:0)
select X, count(X) from table group by X;