例如,我的桌子就这样;
name count
---- ----
red 5
green 3
yellow 4
brown 5
purple 2
black 5
我想要这样的结果;
name count
---- ----
black 5
brown 5
red 5
所以我想要具有最大计数的行。我怎样才能做到这一点 ? MAX()只给出一行。
答案 0 :(得分:2)
一种方法是使用子查询来找到最大值,然后限制该最大值:
SELECT name, count
FROM yourTable
WHERE count = (SELECT MAX(count) FROM yourTable);
根据您的SQLite版本,您也许还可以在此处使用分析功能。来自documentation:
窗口功能支持已添加到SQLite版本3.25.0(2018-09-15)
如果您的版本支持它,我们可以尝试使用RANK
:
WITH cte AS (
SELECT name, count, RANK() OVER (ORDER BY count DESC) rnk
FROM yourTable
)
SELECT name, count
FROM cte
WHERE rnk = 1;
答案 1 :(得分:0)
您可以在下面尝试-
select * from tablename
where count=(select max(count) from tablename)
答案 2 :(得分:0)
使用dense_rank()
窗口功能
select * from
(
select *, dense_rank() over(order by count desc) rn from table
) t where t.rn=1