查看以使用与匹配对应的最大值替换值

时间:2012-03-13 15:01:52

标签: sql view

我确信我的问题对某些人来说非常简单,但我无法弄明白,这是难以找到答案的事情之一。我希望你能提供帮助。

在SQL的表中,我有以下内容(简化数据):

UserID   UserIDX   Number   Date
aaa      bbb       1        21.01.2000
aaa      bbb       5        21.01.2010
ppp      ggg       9        21.01.2009
ppp      ggg       3        15.02.2020
xxx      bbb       99       15.02.2020

我需要一个能给我相同数量的记录的视图,但是对于UserID和UserIDX的每个组合,Number字段下应该只有1个值,即组合数据集中找到的最高值。 Date字段需要保持不变。所以上面的内容将转变为:

UserID   UserIDX   Number   Date
aaa      bbb       5        21.01.2000
aaa      bbb       5        21.01.2010
ppp      ggg       9        21.01.2009
ppp      ggg       9        15.02.2020
xxx      bbb       99       15.02.2020

因此,对于aaa + bbb组合的所有实例,Number中的唯一值应为5,对于ppp + ggg,唯一值为9。

非常感谢。

利奥

1 个答案:

答案 0 :(得分:0)

select userid,useridx,maxnum,date
from table a
inner join (
    select userid,useridx,max(number) maxnum
    from table
    group by userid,useridx) b
 on a.userid = b.userid and a.useridx = b.useridx