SQL查询,根据特定列值以及插入日期的降序筛选记录

SQL查询,根据特定列值以及插入日期的降序筛选记录,sql,oracle,Sql,Oracle,我有这张桌子- AMOUNT CLAIM_TYPE INSERTED_DATE 100 SETT 09-SEP-18 10.37.50 1006 ATTAA 09-SEP-18 10.37.54 102320 FIXX 09-SEP-18 10.37.55 10077 SETT 09-SEP-18 10.37.56 10034 FIXX 09-SEP-1

我有这张桌子-

AMOUNT  CLAIM_TYPE      INSERTED_DATE
100     SETT            09-SEP-18 10.37.50
1006    ATTAA           09-SEP-18 10.37.54
102320  FIXX            09-SEP-18 10.37.55
10077   SETT            09-SEP-18 10.37.56
10034   FIXX            09-SEP-18 10.37.57
900     ATTAA           09-SEP-18 10.37.58

我想根据CLAIM_TYPE列值筛选出记录,以便CLAIM_TYPE值只出现一次,并且记录必须是最新记录(插入日期)



预期的结果是-

    AMOUNT    CLAIM_TYPE  INSERTED_DATE
    900       ATTAA       09-SEP-18 10.37.58
    10034     FIXX        09-SEP-18 10.37.57
    10077     SETT        09-SEP-18 10.37.56

我在尝试计数、拥有和分组子句时很难获得相同的结果。请建议。

您可以使用
行号()


您可以使用
行编号()


使用相关子查询

select * from OPERATION op
     where op.INSERTED_DATE 
    in ( select max(INSERTED_DATE)
          from
          OPERATION op1
          where op1.CLAIM_TYPE=op.CLAIM_TYPE
          group by CLAIM_TYPE
        )
     and CLAIM_TYPE IN ('FIXX', 'SETT', 'ATTAA', 'PLACC', 'THREE', 'SIXX','TWELL')

使用相关子查询

select * from OPERATION op
     where op.INSERTED_DATE 
    in ( select max(INSERTED_DATE)
          from
          OPERATION op1
          where op1.CLAIM_TYPE=op.CLAIM_TYPE
          group by CLAIM_TYPE
        )
     and CLAIM_TYPE IN ('FIXX', 'SETT', 'ATTAA', 'PLACC', 'THREE', 'SIXX','TWELL')
SELECT op.*
FROM (SELECT TOTAL_RECEIVED_AMOUNT, CLAIM_TYPE, INSERTED_DATE,
             ROW_NUMBER() OVER (PARTITION BY CLAIM_TYPE ORDER BY INSERTED_DATE DESC) AS seq
      FROM OPERATION  op
      WHERE CLAIM_TYPE IN ('FIXX', 'SETT', 'ATTAA', 'PLACC', 'THREE', 'SIXX','TWELL')
     ) op
WHERE seq = 1;
select * from OPERATION op
     where op.INSERTED_DATE 
    in ( select max(INSERTED_DATE)
          from
          OPERATION op1
          where op1.CLAIM_TYPE=op.CLAIM_TYPE
          group by CLAIM_TYPE
        )
     and CLAIM_TYPE IN ('FIXX', 'SETT', 'ATTAA', 'PLACC', 'THREE', 'SIXX','TWELL')