oracle查询以获取每天的最大小时数以及相应的行值

oracle查询以获取每天的最大小时数以及相应的行值,oracle,group-by,max,Oracle,Group By,Max,我很难创建查询来执行以下操作: 我有一张表,叫做LOG: ID | INSERT_TIME | LOG_VALUE ---------------------------------------- 1 | 2013-04-29 18:00:00.000 | 160473 2 | 2013-04-29 21:00:00.000 | 154281 3 | 2013-04-30 09:00:00.000 | 186552 4 | 2013-04-30 14:00:00.

我很难创建查询来执行以下操作:

我有一张表,叫做LOG:

ID | INSERT_TIME             | LOG_VALUE
----------------------------------------
 1 | 2013-04-29 18:00:00.000 | 160473
 2 | 2013-04-29 21:00:00.000 | 154281
 3 | 2013-04-30 09:00:00.000 | 186552
 4 | 2013-04-30 14:00:00.000 | 173145
 5 | 2013-04-30 14:30:00.000 | 102235
 6 | 2013-05-01 11:00:00.000 | 201541
 7 | 2013-05-01 23:00:00.000 | 195234
我要做的是构建一个查询,返回每天插入的最后一个值(使用INSERT_TIME的最大值)。我只对该列的日期部分和logu值列感兴趣。因此,这将是运行查询后的结果集:

2013-04-29  154281
2013-04-30  102235
2013-05-01  195234
我想我需要在INSERT_TIME列上使用GROUP BY,以及MAX()函数,但这样做似乎无法获得LOG_值。有人能帮我吗

(我使用的是Oracle 10g)


这是一种选择。这使用分析函数
rank
来识别每天最新插入时间的行。

感谢您的快速回答!现在就用我的live数据库(5000万行)进行测试…更新:花了很长时间,但它完成了任务。非常感谢,@Justin!!
SELECT trunc(insert_time),
       log_value
  FROM (
    SELECT insert_time,
           log_value,
           rank() over (partition by trunc(insert_time)
                            order by insert_time desc) rnk
      FROM log)
 WHERE rnk = 1