在SQL中,如何为每个组选择前2行

我有一张桌子,如下所示:

NAME    SCORE

-----------------

willy 1

willy 2

willy 3

zoe 4

zoe 5

zoe 6

这是样本

的汇总功能group by仅允许我获得每个方面的最高分name。我想查询以获得每个人的最高2分name,我该怎么办?

我的预期输出是

NAME    SCORE

-----------------

willy 2

willy 3

zoe 5

zoe 6

回答:

SELECT *

FROM test s

WHERE

(

SELECT COUNT(*)

FROM test f

WHERE f.name = s.name AND

f.score >= s.score

) <= 2

  • SQLFiddle演示

以上是 在SQL中,如何为每个组选择前2行 的全部内容, 来源链接: utcz.com/qa/397847.html

回到顶部