2016-06-21 1 views
0

データsoure:私はDATA2 maxと同じDATA1を見つける必要があるSQL:ルックアップでレコードを返す方法max assign column?

id data1 data2 
1 1  4 
2 1  5 
3 2  6 
4 2  7 

select data1, id, max(data2) from table1 group by data1, id

data1 id data2 
1  2 5 
2  4 7 

は、私が試してみてください。私は復帰を願っています。 しかしそれは偽です。

これを行う別の方法はありますか?

+0

を試してみてください。 –

+0

[各GROUP BYグループの最初の行を選択しますか?](http://stackoverflow.com/questions/3800551/select-first-row-in-each-group-by-group) –

答えて

0

DB2を含むほとんどのデータベースは、ANSI標準ウィンドウ関数をサポートしています。だから、典型的なアプローチは単純です:

select id, data1, data2 
from (select id, data1, data2, max(data2) over (partition by data1) as max_data2 
     from t 
    ) t 
where data2 = max_data2; 
0

は、使用しているデータベースであなたの質問にタグを付け、この

select data1, id, data2 
    from table1 t 
where data2 = (select max(data2) from table1 where data1 = t.data1) 
order by data1 
関連する問題