oracle查询一个字段最大值,怎么查询表中某一字段最大值所在行的数据

自己想的:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值