首頁 > 資料庫 > mysql教程 > 如何找到 SQL 表中每個 ID 的最大訊號值?

如何找到 SQL 表中每個 ID 的最大訊號值?

Linda Hamilton
發布: 2025-01-06 12:39:41
原創
485 人瀏覽過

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

每個ID的最大訊號查詢

問題:

給定一包含多個訊號的表值與每個ID 關聯,如何編寫查詢來檢索每個唯一ID 的最大訊號值?考慮以下範例表:

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
登入後複製

答案:

要擷取每個ID 的最大訊號值而不影響其他欄位(如Station 和OwnerID),一個自可以使用join:

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
)
登入後複製

此查詢將表格與其自身連接以建立笛卡爾積。對於每一對行,它檢查第二行(高)的訊號值是否大於第一行(cur)的訊號值。如果相同 ID 找到更高的訊號值,則排除目前行。

結果是一個表格,僅包含每個 ID 具有最大訊號值的行。對於範例表,輸出將為:

ID    Signal    Station    OwnerID
111   -120      Home        1
222   -95       Work        1
登入後複製

以上是如何找到 SQL 表中每個 ID 的最大訊號值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板