我在Access中使用sql执行此操作...
之前可能已经回答过,但我不知道如何提出正确的问题,以便找不到解决方案。
我的表名为"表":
attr_1 attr_2 attr3
1 A 10
1 B 5
2 C 3
3 D 7
3 E 8
3 F 11
我希望结果按attr_1
分组,其中attr3
具有最大值,同时来自同一行的attr_2
。所以这就是我需要的结果:
1 A 10
2 C 3
3 F 11
如果我不需要attr_2
那么我会知道如何使用GROUP BY和MAX执行此操作,但我不知道如何在SQL中包含此attr_2
声明得到想要的结果。
请帮忙。
答案 0 :(得分:2)
您可以在subquery
和join
中获得表中的最大值,以获取所有值。
SELECT attr_1, attr_2, attr3
FROM (
SELECT attr_1, max(attr3) as maxAttr3
FROM Table1
GROUP BY attr_1 )T
JOIN Table1 T1
on T.maxAttr3 = T1.attr3
and T.attr_1 = T1.attr_1
答案 1 :(得分:1)
根本不需要group by
。您只想选择最近的行。假设值是唯一的,您可以这样做:
select t.*
from table as t
where t.attr3 = (select max(t2.attr3) from table as t2 where t2.attr_1 = t.attr_1);