... where rownum = 1 order by trans_date desc
Tím se vybere jeden libovolně vybraný záznam (where rownum = 1
) a poté seřadí tento jeden záznam (order by trans_date desc
).
Jak ukázal Ivan, můžete použít poddotaz, ve kterém si objednáte záznamy a poté uchováte první záznam s where rownum = 1
ve vnějším dotazu. To je však extrémně specifické pro Oracle a porušuje to standard SQL, kde je výsledek dílčího dotazu považován za neuspořádaný (tj. pořadí podle klauzule může být DBMS ignorováno).
Proto je lepší použít standardní řešení. Od Oracle 12c:
select *
from table_name
order by trans_date desc
fetch first 1 row only;
Ve starších verzích:
select *
from
(
select t.*, row_number() over (order by trans_date desc) as rn
from table_name t
)
where rn = 1;