「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > mysqlの各グループから最大値で行を選択する方法は?

mysqlの各グループから最大値で行を選択する方法は?

2025-02-26に投稿されました
ブラウズ:832

How to Select the Row with the Maximum Value from Each Group in MySQL?

MySQL

の最大値に基づいて行をグループ化および取得し、グループから特定の行を取得することは、データ分析には重要ですと報告。 MySQLでは、この点でグループ化および順序付け操作が重要な役割を果たします。ただし、操作ごとにグループを適用した後、グループから最高の値で行を選択しようとすると、一般的な課題が生じます。 IDおよびversion_id列によって。目標は、一意のIDごとに最高version_idで行を取得することです。 :

maxベースのグループ化:

select * from(id、max(version_id)as max_version_id by id by id by id)as subquery subquery.id = table.id and subquery.max_version_id = table.version_id;

このクエリをサブクエリをレバレッジして、各IDグループの最大version_idを計算します。メインクエリは、内側の結合を実行して、元のテーブルから対応する行を取得します。 T1としてのテーブルから ここで、t1.version_id =(id = t1.idからmax(version_id)を選択します);メインクエリは、条件を満たす行のみを選択します。 、field2 テーブルから IDで注文;
SELECT *
FROM (SELECT id, MAX(version_id) AS max_version_id FROM table GROUP BY id) AS subquery
JOIN table ON subquery.id = table.id AND subquery.max_version_id = table.version_id;
ウィンドウ関数は、各IDパーティション内の最大version_idを計算することにより、代替アプローチを提供します。 Over句は、パーティション化基準を指定し、条項ごとに行が各パーティション内で行が順序付けられることを保証します。グループ化および順序付け操作のニュアンスを理解することにより、データベースユーザーはクエリを改良して、複雑なデータ構造から意味のあるデータを抽出できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3