ホームページ >データベース >mysql チュートリアル >テーブル内の各一意の ID の最小 Record_Date を持つ行を選択するにはどうすればよいですか?

テーブル内の各一意の ID の最小 Record_Date を持つ行を選択するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-17 20:20:13473ブラウズ

How to Select Rows with the Minimum Record_Date for Each Unique ID in a Table?

一意の ID ごとに最も古いレコード日を持つ行を取得する

重複した id 値を含むテーブルを操作し、一意の record_date ごとに最も古い id を持つ行のみを選択する必要がある場合は、注意が必要な場合があります。 record_date 値が一意でない場合、標準的なメソッドは困難になることがよくあります。このソリューションは、次のようなシナリオを効率的に処理します。

次の SQL クエリは、目的の行を効果的に選択します。

<code class="language-sql">SELECT mt.*
FROM MyTable mt
INNER JOIN (
    SELECT id, MIN(record_date) AS MinDate
    FROM MyTable
    GROUP BY id
) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>

このクエリはサブクエリを使用して、最初に各 record_date の最小 id を決定します。サブクエリは、行を id でグループ化し、MIN() 関数を使用して各グループ内の最小の record_date を見つけます。

次に、外側のクエリは、MyTableid の両方を使用して、サブクエリの結果を元のテーブル (record_date) に結合します。これにより、各 record_date の最小 id に一致する行のみが最終的な結果セットに含まれるようになります。 これにより、重複が効果的に削除され、一意の各 record_date について最も古い id を持つ行のみが返されます。

以上がテーブル内の各一意の ID の最小 Record_Date を持つ行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。