ホームページ > データベース > mysql チュートリアル > データセット内の各グループから上位 N 人の最年長者を取得するにはどうすればよいですか?

データセット内の各グループから上位 N 人の最年長者を取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-25 10:06:11
オリジナル
599 人が閲覧しました

How to Retrieve the Top N Oldest People from Each Group in a Dataset?

各グループの最古の個人を効率的に選択します

この記事では、データセット内の各グループの最古の個人(この場合は2つ)を取得するための2つの方法を示しています。 最初のアプローチはAUNION ALLアプローチを利用し、2番目はよりスケーラブルなソリューションに行番号を採用します。

メソッド1:ユニオンすべて(少数の固定数のグループに適しています)この方法は、既知の限られた数のグループにとって簡単です。 各グループの最古の最古の個人を個別に選択し、結果を組み合わせます。 ただし、このアプローチは、グループの数が増えるにつれて面倒で非効率的になります。

メソッド2:行番号(大量または未知のグループのスケーラブルなソリューション)

<code class="language-sql">(
  SELECT *
  FROM mytable
  WHERE `group` = 1  -- Group 1
  ORDER BY age DESC
  LIMIT 2
)
UNION ALL
(
  SELECT *
  FROM mytable
  WHERE `group` = 2  -- Group 2
  ORDER BY age DESC
  LIMIT 2
)
-- ... Add more UNION ALL clauses for additional groups</code>
ログイン後にコピー

このメソッドは、それぞれのグループ内の各個人に行番号を動的に割り当て、年齢ごとに降順で順序付けます。 これにより、すべてのグループで最も古い個人を効率的に選択できます。 このアプローチは、変数を活用しておよび

をレバレッジして、それぞれ行番号とグループを追跡します。 これらの変数を初期化します。 最終

句は、結果をフィルタリングして、各グループの上位2人の個人のみを含むようにします。 この方法は、多くのグループを持つデータセットの

アプローチよりもはるかに効率的で適応性があります。

以上がデータセット内の各グループから上位 N 人の最年長者を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート