Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencari Nilai Isyarat Maksimum untuk Setiap ID Unik dalam Jadual?

Bagaimana untuk Mencari Nilai Isyarat Maksimum untuk Setiap ID Unik dalam Jadual?

DDD
Lepaskan: 2025-01-06 12:38:41
asal
362 orang telah melayarinya

How to Find the Maximum Signal Value for Each Unique ID in a Table?

Menentukan Nilai Isyarat Maksimum untuk ID Unik

Jadual yang disediakan mengandungi berbilang rakaman isyarat untuk ID yang sama, menjadikannya perlu untuk mendapatkan yang tertinggi nilai isyarat untuk setiap ID. Menggunakan fungsi MAX() sahaja boleh menimbulkan masalah kerana ia mengagregatkan semua rekod, menjejaskan lajur Station dan OwnerID.

Penyelesaian Pertanyaan dengan Sertaan Sendiri dan Pengecualian

Kepada asingkan nilai isyarat tertinggi untuk setiap ID, pertimbangkan pendekatan sambung sendiri. Teknik ini melibatkan penggabungan jadual dengan dirinya sendiri untuk membolehkan perbandingan dan penapisan.

Pertanyaan berikut memanfaatkan pendekatan ini:

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 beroperasi seperti berikut:

  • Alias ​​cur mewakili baris semasa yang sedang dinilai.
  • Pernyataan SELECT bersarang berfungsi sebagai subquery untuk menyemak sama ada nilai isyarat yang lebih tinggi wujud untuk ID yang sama.
  • Jika tiada nilai yang lebih tinggi ditemui, keadaan NOT EXISTS akan kembali benar, termasuk baris semasa dalam set hasil.

Output pertanyaan ini akan termasuk satu baris untuk setiap ID dengan nilai isyarat tertinggi yang berkaitan. Pendekatan ini berkesan menyelesaikan isu mengagregat stesen dan ID pemilik yang berbeza untuk ID yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Isyarat Maksimum untuk Setiap ID Unik dalam Jadual?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan