我知道这个标题听起来不太具有描述性,但这是我能想到的最好的标题:
我有这张桌子
ID BDATE VALUE
28911 14/4/2009 44820
28911 17/4/2009 32240
28911 20/4/2009 30550
28911 22/4/2009 4422587,5
28911 23/4/2009 4441659
28911 24/4/2009 7749594,67
38537 17/4/2009 58280
38537 20/4/2009 137240
38537 22/4/2009 81098692
38605 14/4/2009 2722368
38605 20/4/2009 5600
38605 22/4/2009 1625400
38605 23/4/2009 6936575
这实际上是一个封装在视图中的非常复杂的查询,但现在不重要了。
我希望每个 ID 都有包含最高 BDate 的行。在这个例子中,结果就是这样。
ID BDATE VALUE
28911 24/4/2009 7749594,67
38537 22/4/2009 81098692
38605 23/4/2009 6936575
我已经尝试过了
select id, max(bdate), value from myview group by id, value
但随后它返回所有行,因为每个行的值列都不同。该查询是在 Oracle v10 中设计的,我有资格仅使用选择查询,而不是创建过程。
我们可以在 IN 子句中使用多列:
select id, bdate, value
from myview
where (id, bdate) in
(select id, max(bdate)
from myview group by id)
/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)