代码之家  ›  专栏  ›  技术社区  ›  ImaginaryHuman072889

选择非重复,但包括非重复时间戳

  •  0
  • ImaginaryHuman072889  · 技术社区  · 6 年前

    在Oracle中,如果一列中有几行具有相同的值(例如 ID )但每一个都有不同的价值 TIME 列,是否可以 SELECT 语句,它只为每个不同的 身份证件 ?

    例如,如果我有下表:

    TIME      ID
    ---------------
    6:45AM    1     
    6:00AM    1
    2:00PM    2
    3:00PM    2
    3:30PM    2
    7:00AM    3
    8:00PM    4
    7:30PM    4
    

    我渴望 选择 返回以下内容的语句:

    TIME      ID
    ---------------
    6:45AM    1
    3:30PM    2
    7:00AM    3
    8:00PM    4
    

    我能想出如何返回期望的结果。 除了 没有 时间 专栏:

    SELECT DISTINCT ID FROM TABLE1
    

    但我不知道如何把结果也包括最新的。 时间 为每个不同的 身份证件 .

    1 回复  |  直到 6 年前
        1
  •  3
  •   Thorsten Kettner    6 年前

    你要找的是聚合。您希望每个ID的最长时间:

    select
      max(time), -- maximum time
      id
    from mytable
    group by id -- per id
    order by id;