sql – 为每个ID抓取最大值的简单查询

前端之家收集整理的这篇文章主要介绍了sql – 为每个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的最大信号:

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

我尝试使用MAX(),并且与每个记录不同的站和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
)

这将为每个最高信号列出一行,因此每个ID可能有多个行.

原文链接:https://www.f2er.com/mssql/81748.html

猜你在找的MsSQL相关文章