加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:39:40 所属栏目:MsSql教程 来源:网络整理
导读:好,我有一张这样的表: ID Signal Station OwnerID111 -120 Home 1111 -130 Car 1111 -135 Work 2222 -98 Home 2222 -95 Work 1222 -103 Work 2 这一切都是在同一天.我只需要查询返回每个ID的最大信号: ID Signal Station OwnerID111 -120 Home 1222 -95 Wor
好,我有一张这样的表:
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可能有多个行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读