GROUP BY を使用した各グループ内の最近のレコードの検索
次のような特定の列によって分類された各グループ内の最新のレコードを識別します。送信者 ID については、考慮すべき 2 つのオプションがあります:
オプション 1:最後のタイムスタンプ値の決定
この手法には、各グループの最新のタイムスタンプ値を見つけることが含まれます。このアプローチのサンプル クエリは次のとおりです。
SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id
オプション 2: 計算値の結合
もう 1 つの方法は、元のテーブルとサブクエリの結果を結合することです。これにより、各グループの最大タイムスタンプが決まります。次のクエリは、このアプローチの例です。
SELECT t1.* FROM messages t1 JOIN (SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id) t2 ON t1.from_id = t2.from_id AND t1.timestamp = t2.timestamp;
これらのメソッドのいずれかを利用すると、個別の送信者 ID ごとに最新のメッセージを取得でき、最新の会話のより包括的なビューが提供されます。
以上がSQL の GROUP BY を使用して各グループの最新レコードを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。