識別子とタイムスタンプ値ごとに複数の行を含むデータを扱う場合、一意の行を選択しながら最小値でデータをグループ化する必要があります。これにより、各識別子はその最初の出現によって 1 回だけ表されることが保証されます。
提供されたテーブル例では、各 ID の最小の record_date
を持つ行を抽出することが目標です。ただし、テーブルには重複した日付が含まれているため、従来の方法を使用してこの目標を達成することが困難になります。
この問題は、相関サブクエリと内部結合を使用して解決できます。
<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
フィールドと record_date
フィールドを使用して、メイン テーブル (MyTable
) をサブクエリと結合します。 結果テーブルには、各 ID の最小の record_date
を持つ行のみが含まれます。この方法により、出力に重複行が表示されるのを防ぎます。
以上が各 ID とタイムスタンプの最小値を持つ個別の行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。