Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Baris Berbeza Dikumpulkan Mengikut Nilai Minimum dalam Jadual Pangkalan Data?

Bagaimana untuk Memilih Baris Berbeza Dikumpulkan Mengikut Nilai Minimum dalam Jadual Pangkalan Data?

Susan Sarandon
Lepaskan: 2025-01-17 20:12:10
asal
199 orang telah melayarinya

How to Select Distinct Rows Grouped by Minimum Value in a Database Table?

Pilih baris unik yang dikumpulkan mengikut nilai minimum

Dalam bidang operasi pangkalan data, kami sering menghadapi tugas mengumpulkan data mengikut nilai minimum medan tertentu semasa memilih baris unik. Katakan anda mempunyai jadual dengan berbilang baris untuk setiap pengecam unik, contohnya:

<code>| key_id | id | record_date | other_cols |
|---|---|---|---|
| 1 | 18 | 2011-04-03 | x |
| 2 | 18 | 2012-05-19 | y |
| 3 | 18 | 2012-08-09 | z |
| 4 | 19 | 2009-06-01 | a |
| 5 | 19 | 2011-04-03 | b |
| 6 | 19 | 2011-10-25 | c |
| 7 | 19 | 2012-08-09 | d |</code>
Salin selepas log masuk

Matlamatnya ialah untuk mendapatkan semula satu baris daripada setiap id unik, mewakili baris dengan tarikh_rekod terkecil.

Pendekatan biasa ialah menggunakan subkueri untuk mengenal pasti tarikh_ rekod minimum bagi setiap id dan kemudian menyambungkannya kembali ke jadual asal:

<code>SELECT *
FROM t
WHERE record_date = (SELECT MIN(record_date) FROM t WHERE id = t.id)</code>
Salin selepas log masuk

Walau bagaimanapun, kaedah ini tidak boleh mengendalikan entri tarikh_rekod minimum pendua dengan id yang sama, yang akan menghasilkan hasil berbilang baris.

Untuk menyelesaikan masalah ini, kami memerlukan penyelesaian yang memastikan baris unik. Salah satu pendekatan sedemikian ialah menggunakan gabungan dalaman dan jadual terbitan yang mengira tarikh_rekod minimum untuk setiap id:

<code>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>
Salin selepas log masuk

Gabungan dalam menjamin bahawa hanya baris dengan tarikh_ rekod minimum untuk setiap id dipilih, dengan berkesan menghasilkan jadual baris unik yang dikumpulkan mengikut nilai minimum.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Berbeza Dikumpulkan Mengikut Nilai Minimum dalam Jadual Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan