2010-08-26 87 views
1

如何从表中选择最大行?最大意味着什么 - 我的表有两个时间戳列TIME1和TIME2。最大列是具有TIME1最新值的列。如果这不是唯一的行,那么最大值是那些行中具有最新TIME2值的行。如何从表中选择“最大”行?

这对甲骨文来说很重要。

回答

2

你需要的是一个 “前N个” 查询:

SELECT * FROM( SELECT * FROM表按时间1递减,时间2递减 顺序),其中ROWNUM < 2;

,如果你正确的时间1指数,TIME2这将是非常快:

http://blog.fatalmind.com/2010/07/30/analytic-top-n-queries/

+1

为什么这标志着正确的吗?它按time1,time2的顺序进行排序,这意味着与“最新的时间值”相反。 – 2010-08-26 12:04:24

+0

@Jeffrey Kemp:哦,是的,谢谢。如果有人编辑,我会再次标记为正确。 – jjujuma 2010-08-26 13:05:16

+0

对,desc增加了两次。 – 2010-08-26 14:52:52