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

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

Linda Hamilton
Lepaskan: 2025-01-06 12:39:41
asal
500 orang telah melayarinya

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

Pertanyaan Isyarat Maks untuk Setiap ID

Soalan:

Diberikan jadual dengan berbilang isyarat nilai yang dikaitkan dengan setiap ID, bagaimanakah pertanyaan boleh ditulis untuk mendapatkan semula nilai isyarat maksimum bagi setiap ID unik? Pertimbangkan jadual contoh berikut:

ID     Signal    Station    OwnerID
111     -120      Home       1
111     -130      Car        1
111     -135      Work       2
222     -98       Home       2
222     -95       Work       1
222     -103      Work       2
Salin selepas log masuk

Jawapan:

Untuk mendapatkan semula nilai isyarat maksimum bagi setiap ID tanpa menjejaskan lajur lain seperti Station dan OwnerID, self- join boleh digunakan:

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 menggabungkan jadual dengan dirinya sendiri untuk mencipta produk Cartesian. Untuk setiap pasangan baris, ia menyemak sama ada nilai isyarat baris kedua (tinggi) lebih besar daripada nilai isyarat baris pertama (kur). Jika nilai isyarat yang lebih tinggi ditemui untuk ID yang sama, baris semasa dikecualikan.

Hasilnya ialah jadual yang mengandungi hanya baris dengan nilai isyarat maksimum untuk setiap ID. Untuk jadual contoh, outputnya ialah:

ID    Signal    Station    OwnerID
111   -120      Home        1
222   -95       Work        1
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Isyarat Maksimum untuk Setiap ID dalam Jadual SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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