0

我有一张表,在 oracle 数据库中每天每小时跟踪 10 辆车的里程数。例如:

Car | Mileage| Timestamp
Honda | 23.4| 11-Jan-17 08.00.00.000000 AM
Honda | 22| 11-Jan-17 09.00.00.000000 AM
Honda | 21.3 | 11-Jan-17 10.00.00.000000 AM
Honda | 24.4| 11-Jan-17 11.00.00.000000 AM
Honda | 23.2| 12-Jan-17 08.00.00.000000 AM
Honda | 25| 12-Jan-17 09.00.00.000000 AM
Honda | 26| 12-Jan-17 10.00.00.000000 AM

我不明白如何编写一个查询来每天运行过去 1 年的数据,并在每天早上 9 点之前为每辆车选择里程

4

1 回答 1

0

假设您的意思是在午夜之后和 09:00 之前的里程数,那么以下将完成这项工作并应对其他汽车制造商。

WITH base_data AS
(SELECT car, mileage, read_date , ROW_NUMBER() OVER(PARTITION BY car,TRUNC(READ_DATE) ORDER BY read_date DESC) as ranking
   FROM   wg_test
  WHERE  EXTRACT (HOUR FROM read_date) BETWEEN 0 AND 8
    AND read_date > SYSDATE - 365)
SELECT car, mileage, read_date
  FROM base_data
 WHERE  ranking = 1
于 2017-02-14T09:55:30.907 回答