Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Baris Berbeza dengan Nilai Minimum untuk Setiap ID dan Cap Masa?

Bagaimana untuk Memilih Baris Berbeza dengan Nilai Minimum untuk Setiap ID dan Cap Masa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-17 20:17:10414semak imbas

How to Select Distinct Rows with the Minimum Value for Each ID and Timestamp?

Kumpulkan mengikut nilai minimum dan pilih baris unik

Apabila berurusan dengan data yang mengandungi berbilang baris untuk setiap pengecam dan nilai cap masa, adalah perlu untuk mengumpulkan data mengikut nilai minimum semasa memilih baris unik. Ini memastikan bahawa setiap pengecam hanya diwakili sekali dengan kejadian terawalnya.

Dalam jadual contoh yang disediakan, matlamatnya adalah untuk mengekstrak baris dengan record_date terkecil untuk setiap id. Walau bagaimanapun, jadual mengandungi tarikh pendua, yang menjadikannya sukar untuk mencapai matlamat ini menggunakan kaedah tradisional.

Masalah ini boleh diselesaikan menggunakan subkueri berkorelasi dan gabungan dalaman:

<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>

Kaedah ini termasuk:

  1. Buat subkueri untuk mengenal pasti record_date terkecil untuk setiap id.
  2. Sertai jadual utama (id) dengan subkueri menggunakan medan record_date dan MyTable.

Jadual hasil hanya mengandungi baris dengan record_date terkecil untuk setiap id. Kaedah ini menghalang baris pendua daripada muncul dalam output.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Berbeza dengan Nilai Minimum untuk Setiap ID dan Cap Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn