Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Nilai Maksimum untuk ID Sama dalam Jadual Pangkalan Data dengan Cekap?

Bagaimana untuk Mendapatkan Nilai Maksimum untuk ID Sama dalam Jadual Pangkalan Data dengan Cekap?

Susan Sarandon
Lepaskan: 2025-01-06 12:42:40
asal
196 orang telah melayarinya

How to Efficiently Retrieve the Maximum Value for Identical IDs in a Database Table?

Pertanyaan Nilai Maks untuk ID Serupa

Dalam jadual dengan berbilang rekod berkongsi ID yang sama, anda mungkin menghadapi senario yang anda perlu dapatkan nilai maksimum untuk setiap ID. Berikut ialah pertanyaan untuk mencapai ini:

Pendekatan Subkueri:

select cur.id, cur.signal, cur.station, cur.ownerid
from yourtable cur
where not exists (
    select *
    from yourtable high
    where high.id = cur.id and high.signal > cur.signal
)
Salin selepas log masuk

Pertanyaan ini menggunakan subkueri dengan klausa "TIDAK WUJUD" untuk mengecualikan semua baris dengan yang lebih tinggi isyarat daripada baris semasa. Dengan berbuat demikian, ia memilih baris dengan isyarat maksimum untuk setiap ID. Kelemahan yang berpotensi ialah ia boleh menyenaraikan berbilang baris untuk ID dengan nilai maksimum yang sama.

Pendekatan Sertaan Luar:

Pendekatan alternatif ialah menggunakan sambung luar dengan sambung sendiri:

select a.id, a.signal, a.station, a.ownerid
from yourtable a
left join yourtable b on a.id = b.id and a.signal < b.signal
where b.id is null
Salin selepas log masuk

Pertanyaan ini menggunakan sambung luar untuk mencari baris tanpa sebarang isyarat yang lebih tinggi. Dengan menggunakan syarat yang menyemak nilai nol dalam baris bercantum, ia menapis keluar baris dengan isyarat yang lebih rendah. Pendekatan ini menjamin satu baris untuk setiap ID dengan isyarat maksimum.

Contoh:

Menggunakan jadual yang disediakan, pertanyaan akan mengembalikan hasil berikut:

Subkueri Pendekatan:

ID Signal Station OwnerID
111 -120 Home 1
222 -95 Work 1

Pendekatan Sertaan Luar:

ID Signal Station OwnerID
111 -120 Home 1
222 -95 Work 1

Kesimpulan:

Kedua-dua pendekatan mencapai matlamat yang sama untuk mendapatkan semula nilai isyarat maksimum untuk setiap ID. Pendekatan subkueri mungkin lebih cekap untuk set data kecil, manakala pendekatan gabungan luar boleh menjadi lebih cekap untuk set data yang lebih besar, terutamanya jika terdapat berbilang baris dengan isyarat yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Maksimum untuk ID Sama dalam Jadual Pangkalan Data dengan Cekap?. 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