如何为另一列的每个值获取一列中的最大值?

时间:2014-10-10 07:30:13

标签: sql sql-server

我需要在下表中每value ITEM项:

输入表:

value | ITEM
1     | A 
2     | B
3     | C
4     | A
5     | B 
6     | C
7     | E 

通缉结果:

value | ITEM
4     | A
5     | B 
6     | C
7     | E 

3 个答案:

答案 0 :(得分:0)

SELECT Item, Value, MaxValue = (SELECT MAX(t2.VALUE)
                                FROM TableName t2
                                WHERE t.Item= t2.Item)
FROM TableName t

SQL-Fiddle

或者,如果您不想要所有记录,请使用Group By

SELECT Item, MaxValue = MAX(VALUE)
FROM TableName t
GROUP BY Item

SQL-Fiddle

答案 1 :(得分:0)

试试这样:

select MAX(value ) as MAXvalue , ITEM from tbl_name 
group By ITEM

答案 2 :(得分:0)

由于您希望每个ITEM的某些事情最多,因此您需要先GROUP BY ITEM。从概念上讲,这是将表行分组为组,其中每个组具有ITEM的相同值:

  • 1 | A
    4 | A

  • 2 | B
    5 | B

  • 3 | C
    6 | C

  • 7 | E

然后,对于每个组,您希望最大value(在名为value的输出列中)以及ITEM本身,因此您SELECT MAX(value) AS value, ITEM

最后,您的查询如下所示:

SELECT MAX(value) AS value, ITEM
FROM …
GROUP BY ITEM