大きなテーブル内の各グループの列の最大値を効率的に見つけるにはどうすればよいですか?
大きなテーブルのグループ化された列の最大値を検索します
この例では、非効率的な複数テーブル検索を実行せずに、大きなテーブルの各グループから特定の列の最大値を持つ行を抽出する必要があります。次の形式を考えてみましょう:
<code>SCORES ID ROUND SCORE 1 1 3 1 2 6 1 3 2 2 1 10 2 2 12 3 1 6</code>
あなたの目標は、一意の ID ごとに最新のラウンドと対応するスコアを取得することです。目的の出力は次のとおりです:
<code>ID ROUND SCORE 1 2 6 2 2 12 3 1 6</code>
ウィンドウ関数を使用した効率的な解決策
効率的な方法は、DISTINCT キーワードと組み合わせてウィンドウ関数を使用することです。
SELECT DISTINCT id ,MAX(round) OVER (PARTITION BY id) AS round ,FIRST_VALUE(score) OVER (PARTITION BY id ORDER BY round DESC) AS score FROM SCORES WHERE id IN (1,2,3) ORDER BY id;
このクエリでは、次の重要な概念が使用されます:
- PARTITION BY: ID 列ごとに行をグループ化します。
- MAX(round): 各パーティションの最大ラウンド数を計算します。
- FIRST_VALUE(score): 最大ラウンド数で各 ID の最初 (最新) スコアを取得します。
- DISTINCT: 一意の行のみが返されるようにし、重複した結果を排除します。
この最適化されたクエリは、テーブルを複数回スキャンする必要がなく、一意の ID ごとに最新のラウンドとスコアを効率的に返し、大規模なテーブルでも効率的です。
以上が大きなテーブル内の各グループの列の最大値を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?
