【问题标题】:Find highest Value among duplicates in a table (Oracle)在表中的重复项中查找最高值 (Oracle)
【发布时间】:2021-09-02 01:34:52
【问题描述】:

我有一个包含重复值的表,如下所示。

我想找出事件中最晚的开始时间。预期输出是

我使用了以下查询,但它似乎获得了整个表中的最新开始时间。

SELECT ID,
EVENT,
START_TIME,
LAST_VALUE(START_TIME) OVER (ORDER BY ID,EVENT RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS latest_start_time
FROM
(Select * from EVENTS)
order by ID,EVENT;

我知道我错过了一些东西,可能是一组。你能帮帮我吗?我正在使用 ORACLE。

【问题讨论】:

    标签: sql oracle oracle11g oracle10g


    【解决方案1】:

    您只需要MAX 分析函数和idevent 上的分区。

    SELECT ID,
           EVENT,
           START_TIME,
           MAX(START_TIME) OVER (PARTITION BY id, event) AS latest_start_time
    FROM   EVENTS
    order by ID,EVENT;
    

    【讨论】:

      【解决方案2】:

      试试

      SELECT DISTINCT
         ID,
         EVENT,
         START_TIME,
         MAX(START_TIME) OVER (PARTITION BY ID, EVENT) AS latest_start_time
      FROM EVENTS
      order by ID,EVENT;
      

      【讨论】:

        猜你喜欢
        • 2010-09-08
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        • 2023-01-13
        • 1970-01-01
        • 2019-11-10
        • 2015-11-28
        • 1970-01-01
        相关资源
        最近更新 更多