Search notes:
Oracle SQL Plan operation TABLE ACCESS BY USER ROWID
create table tq84_tab (
id integer,
grp varchar2(3),
val number
);
begin
insert into tq84_tab values (1, 'AAA', 7);
insert into tq84_tab values (2, 'AAA', 12);
insert into tq84_tab values (3, 'AAA', 5);
insert into tq84_tab values (4, 'BBB', 2);
insert into tq84_tab values (5, 'CCC', 21);
insert into tq84_tab values (6, 'CCC', 18);
insert into tq84_tab values (7, 'CCC', 3);
end;
/
explain plan for
select *
from
tq84_tab
where
rowid = (
select max(rowid) keep (dense_rank first order by val desc) from tq84_tab
)
;
select * from table(dbms_xplan.display(format => 'basic'));
--
-- -----------------------------------------------
-- | Id | Operation | Name |
-- -----------------------------------------------
-- | 0 | SELECT STATEMENT | |
-- | 1 | TABLE ACCESS BY USER ROWID| TQ84_TAB |
-- | 2 | SORT AGGREGATE | |
-- | 3 | TABLE ACCESS FULL | TQ84_TAB |
-- -----------------------------------------------
drop table tq84_tab;