Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pilih baris terbaru untuk setiap grup dari oracle

Anda dapat menggunakan fungsi analitik

SELECT *
  FROM (SELECT c.*,
               rank() over (partition by user_id order by ts desc) rnk
          FROM comments c)
 WHERE rnk = 1

Bergantung pada bagaimana Anda ingin menangani ikatan (jika bisa ada dua baris dengan user_id yang sama dan ts ), Anda mungkin ingin menggunakan row_number atau dense_rank fungsi daripada rank . rank akan memungkinkan beberapa baris menjadi yang pertama jika ada seri. row_number akan secara sewenang-wenang mengembalikan satu baris jika ada seri. dense_rank akan berperilaku seperti rank untuk baris yang pertama diikat tetapi akan menganggap baris berikutnya sebagai yang kedua daripada ketiga dengan asumsi dua baris terikat untuk yang pertama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memanggil prosedur tersimpan Oracle yang menyertakan tipe yang ditentukan pengguna di java?

  2. Cara Memformat Angka di Oracle

  3. Kueri hubungan Kunci Asing Tabel

  4. Bagaimana cara melewatkan parameter bernilai tabel dari C# ke prosedur tersimpan Oracle

  5. ORA-1114 Menjalankan Datapatch