Como retornar o valor máximo de uma coluna e seus respectivos valores.

Exemplo:

 

CREATE TABLE #MaxVal(id INT,VALUE INT,OtherCol CHAR(1));
    INSERT #MaxVal VALUES(1,1,'A');
    INSERT #MaxVal VALUES(1,2,'A');
    INSERT #MaxVal VALUES(1,3,'Z');
    INSERT #MaxVal VALUES(2,1,'A');
    INSERT #MaxVal VALUES(2,2,'X');
    INSERT #MaxVal VALUES(2,3,'A');
    INSERT #MaxVal VALUES(3,1,'A');
    INSERT #MaxVal VALUES(3,2,'Y');

Se você está interessado apenas no ID e o valor máximo da coluna é muito facil.

SELECT id,MAX(VALUE) AS VALUE    
FROM #MaxVal    
GROUP BY id;

OUTPUT:

ID|Value
-------------
1|3
2|3
3|2

Se voce precisa de toda a linha, precisaremos fazer um sub-select.

SELECT t.* FROM(    
SELECT id,MAX(VALUE) AS MaxValue    
FROM #MaxVal    
GROUP BY id) x    
JOIN #MaxVal t ON x.id =t.id    
AND x.MaxValue =t.VALUE

OUTPUT:

ID|Value|OtherCol
----------------------
3|2|Y
2|3|A
1|3|Z

Anúncios