Oracle 取最大值取出一条数据问题

2025-05-19 22:08:35
推荐回答(2个)
回答1:

1、按照问题中的表样,先建测试表;create table test_max(qoor varchar2(20),para varchar2(100),strid number);

2、插入测试数据,

insert into test_max values(48,'厅门1',2);

insert into test_max values(251,'厅门2',7);

insert into test_max values(252,'厅门3',7);

insert into test_max values(259,'厅门2',9);

insert into test_max values(260,'厅门2',9);

insert into test_max values(263,'厅门2',12);

3、查询表中记录,最大的strid=12;select t.*, t.rowid from TEST_MAX t

4、获取最大数据,即strid=12的记录,编写sql;

select * from 

(select t.*, row_number() over(order by strid desc) rn from TEST_MAX t) t

where rn =1;

回答2:

具体的看不清,但是大致思路是:select * from 表名 where id=(select max(id) from 表名 group id)
或者先排序,再取rownum=1的那条数据