首页 > 数据库 > mysql教程 > 如何查找 SQL 表中每个 ID 的最大信号值?

如何查找 SQL 表中每个 ID 的最大信号值?

Linda Hamilton
发布: 2025-01-06 12:39:41
原创
495 人浏览过

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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板