根据要求限制 1 个 sqlite 的多个结果

More than one result on request with limit 1 sqllite

结果是一行,但是bonus字段的值相同的有好几个人

SELECT Name, bonus
From employees
ORDER by bonus
Limit 1

结果

Ivan 100

但必须是

Ivan 100 Petr 100

做了这个,但我觉得很困惑:

SELECT Name, bonus
From employees
Where bonus= (SELECT id From employees ORDER by bonus Limit 1)

在 SQLite 中,您可以使用 RANK 或 dense_rank window 函数来实现

select name, bonus 
  from (select name, bonus, dense_rank() over(order by bonus desc) dns_rnk from employees) 
 where dns_rnk = 1;

在子查询中,它将根据奖金对员工进行排名,外部查询将过滤掉不需要的行。