在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中文網其他相關文章!