自己想的:

SQL> select * from aaa;

ID     SEQ_ID NAME

---------- ---------- --------------------

1          1 A

1          2 A

1          3 A

2          1 B

2          2 B

3          1 C

3          2 C

3          3 C

3          4 C

9 rows selected

SQL>

SQL>  SELECT *

2    FROM AAA A

3   WHERE A.SEQ_ID = (SELECT MAX(B.SEQ_ID) FROM AAA B WHERE B.ID = A.ID)

4  /

ID     SEQ_ID NAME

---------- ---------- --------------------

1          3 A

2          2 B

3          4 C

TOP N中的TOP1,(依需要选用rank,dense_rank,row_number)

SELECT ID, SEQ_ID, NAME

FROM (SELECT ID,

SEQ_ID,

NAME,

RANK() OVER(PARTITION BY ID ORDER BY SEQ_ID DESC NULLS LAST) DRN

FROM TA)

WHERE DRN = 1

SQL> SELECT ID, SEQ_ID, NAME

2    FROM (SELECT ID,

3                 SEQ_ID,

4                 NAME,

5                 RANK() OVER(PARTITION BY ID ORDER BY SEQ_ID DESC NULLS LAST) DRN

6            FROM AAA)

7   WHERE DRN =1

8  /

ID     SEQ_ID NAME

---------- ---------- --------------------

1          3 A

2          2 B

3          4 C

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐