查询按表中的值获取最大日期。我的方案如下所示

时间:2018-02-20 07:19:52

标签: sql-server

我有一个表测试,如下所示

itemid revid    max_value
1        a      1000
1        a      2000
1        b      3000
2        a      9000
2        b      2000
3        c      7000
3        d      1000
3        e      2000
4        a      500
4        b      20000
5        a      12000
5        c      14000

现在我想获取如下数据。

这里我想要每个revid,itemid的max(maxvalue)。感谢。

O / P: -

itemid revid    maxvalue
1        b      3000
2        a      9000
3        c      7000
4        b      20000
5        c      14000

2 个答案:

答案 0 :(得分:0)

这里我对你当前的o / p很少感到困惑。您的问题是i want the max(maxvalue) of each revid, itemid但是O / P似乎是

select * from
(
    select *, 
           row_number() over (partition by itemid order by max_value desc) row_no 
    from table
) t 
where row_no = 1

答案 1 :(得分:0)

请像这样使用 -

SELECT a.* 
FROM yourtableName a 
INNER JOIN 
(
    SELECT itemid , MAX(max_value) mxy
    GROUP BY itemid 
)k ON k.mxy = a.maxvalue AND k.itemid = a.itemid