SQL:如何通过查找最大分配列返回记录?

时间:2016-06-21 02:37:56

标签: sql db2

数据源:

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

我需要找到data2 max和相同的data1。我希望回归:

data1   id  data2
1       2   5
2       4   7

我尝试:select data1, id, max(data2) from table1 group by data1, id。 但这是错误的。

还有其他办法吗?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

试试这个

select  data1, id, data2
    from table1 t
where data2 = (select max(data2) from table1 where data1 = t.data1)
order by data1