Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle để truy xuất bản ghi tối đa

Bạn có thể sử dụng truy vấn con nhận 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;

Xem SQL Fiddle with Demo

Hoặc bạn có thể sử dụng 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

Xem SQL Fiddle with Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi một truy vấn tiên tri thành truy vấn MySQL

  2. Tạo tệp CSV trên mỗi vòng lặp | PLSQL Oracle SQL Developer

  3. Cách tìm giá trị trung bình trong sql

  4. Oracle lấy các hàng khớp chính xác với danh sách các giá trị

  5. In từng ký tự từ một chuỗi (VARCHAR2) oracle sql mà không cần sử dụng plsql và cũng không cần sử dụng kép