ホームページ > データベース > mysql チュートリアル > MySQL で一意の RID ごとに最新の行の PID を取得するにはどうすればよいですか?

MySQL で一意の RID ごとに最新の行の PID を取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-04 07:12:33
オリジナル
204 人が閲覧しました

How to Fetch the Latest Row's PID for Each Unique RID in MySQL?

MAX() と GROUP BY を使用したグループごとの最新の行の取得

タイムスタンプ、コスト、リッドなどの列を含む MySQL テーブルがあるシナリオを考えてみましょう。あなたの目的は、一意の各 Rid の最新の行の PID を取得することです。

次のコマンドを使用してこれを試みました。 query:

SELECT MAX(timestamp),rid,pid FROM theTable GROUP BY rid
ログイン後にコピー

ただし、返された pid 値は最大タイムスタンプと一致していませんでした。これは、GROUP BY が SELECT 句内のすべての列を考慮し、各グループに最初に一致する行を選択するためです。

これを修正するには、各グループの Rid と最大タイムスタンプを特定する必要があります。これはサブクエリを使用して行うことができます:

SELECT rid, MAX(timestamp) AS ts
FROM theTable
GROUP BY rid
ログイン後にコピー

このクエリの結果は次のようになります:

rid | ts
-----|-----
1    | 2011-04-14 01:06:06
2    | 2011-04-14 01:05:41
3    | 2011-04-14 01:14:14
ログイン後にコピー

ここで、rid を使用して元のテーブルをこのサブクエリと結合できます。およびタイムスタンプを使用して、必要な pid 値を取得します。

SELECT theTable.pid, theTable.cost, theTable.timestamp, theTable.rid
FROM theTable
INNER JOIN 
(
    SELECT rid, MAX(timestamp) AS ts
    FROM theTable
    GROUP BY rid
) AS maxt
ON (theTable.rid = maxt.rid AND theTable.timestamp = maxt.ts)
ログイン後にコピー

このクエリの結果から pid が得られます。コスト、タイムスタンプ、および固有のリッドごとに最新の行を削除します。

以上がMySQL で一意の RID ごとに最新の行の PID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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