各 SQL グループの上位 2 行の選択
SQL の一般的なタスクは、各グループの上位行のみを取得することです。ただし、グループ化のための標準の集計関数 (MAX() や MIN() など) では、最高値または最低値の選択のみが可能です。
名前ごとに上位 2 つのスコアを選択するためのクエリ:
この課題に対処するには、より複雑なクエリが必要です。提供されたテーブル内の各名前の上位 2 つのスコアを選択する方法の例を次に示します。
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
この出力には、要求に応じて、テーブル内の各名前の上位 2 つのスコアが含まれます。
以上がSQL で各グループの上位 2 行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。