選擇每個SQL 群組中的前兩行
在SQL 中,常見任務是只擷取每個群組的前幾行。然而,用於分組的標準聚合函數(例如 MAX() 和 MIN())僅允許選擇最高或最低值。
選擇每個名稱的前兩個分數的查詢:
為了應對這一挑戰,需要更複雜的查詢。以下是如何為所提供的表中的每個名稱選擇前兩個分數的範例:
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中文網其他相關文章!