Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle за извличане на максимален запис

Можете да използвате подзаявка, която получава max(process_date) :

select c1.b_id,
  c2.MaxDate
from table_a a
inner join table_b b
  on a.a_id = b.a_id
inner join table_c c1
  on b.b_id = c1.b_id
inner join
(
  select max(process_date) MaxDate
  from table_c
) c2
  on c1.process_date = c2.maxdate;

Вижте SQL Fiddle с демонстрация

Или можете да използвате row_number() :

select b_id, process_date
from 
(
  select c1.b_id,
    c1.process_date,
    row_number() over(partition by a.a_id order by c1.process_date desc) rn
  from table_a a
  inner join table_b b
    on a.a_id = b.a_id
  inner join table_c c1
    on b.b_id = c1.b_id
) 
where rn = 1

Вижте SQL Fiddle с демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORACLE - намиране на конкретен резултат в ЦИКЪЛ (ИЛИ ПОДОБЕН)

  2. ГРЕШКА на ред:PL/SQL:SQL изразът е игнориран. докато създавате/заменяте тялото на пакета

  3. Има ли някакъв начин пула за връзки на JBoss да се свърже отново с Oracle, когато връзките се развалят?

  4. Изпълнение на Oracle Stored Proc като друг потребител

  5. присъединете се с търсене и групиране