在 SQL 中获取每个组的前两行
SQL 查询使用户能够从表中提取特定数据,但是如果您需要怎么办选择每组的前两行?当您想要分析得分最高的记录或检索组内的多个值时,可能会遇到这种情况。
让我们以下表为例:
NAME | SCORE |
---|---|
willy | 1 |
willy | 2 |
willy | 3 |
zoe | 4 |
zoe | 5 |
zoe | 6 |
要检索每个名字的最高两个分数,我们可以使用以下 SQL 查询:
SELECT * FROM test s WHERE ( SELECT COUNT(*) FROM test f WHERE f.name = s.name AND f.score >= s.score ) <= 2
以下是查询的方式工作原理:
此查询的预期输出如下:
NAME | SCORE |
---|---|
willy | 2 |
willy | 3 |
zoe | 5 |
zoe | 6 |
以上是如何在 SQL 中获取每个组的前两行?的详细内容。更多信息请关注PHP中文网其他相关文章!