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

Mencoba memahami over() dan partisi by

Coba pesan berdasarkan tanggal pemesanan, Anda akan melihat hasilnya dengan lebih mudah

select Row_Number() over(partition by orderdate order by orderdate asc) 
    as Rownumber, salesorderid, orderdate
from test2
order by orderdate;

harus memberi (saya telah menambahkan baris kosong untuk kejelasan)

ROWNUMBER     SALESORDERID       ORDERDATE
1             43664              07/01/2001

1             43911              08/01/2001
2             43867              08/01/2001
3             43895              08/01/2001
4             43894              08/01/2001
5             43877              08/01/2001

1             44109              09/01/2001

1             44285              10/01/2001

1             44483              11/01/2001
2             44501              11/01/2001

Anda akan melihat bahwa hasilnya dibagi menjadi 'partisi', setiap partisi adalah kumpulan baris dengan tanggal pemesanan yang identik. Itulah yang dimaksud dengan 'partition by orderdate'.

Di dalam sebuah partisi, baris-baris diurutkan berdasarkan tanggal pemesanan, sesuai dengan klausa kedua dari '(partisi berdasarkan tanggal pemesanan, urutan berdasarkan tanggal pesanan asc)'. Itu tidak terlalu berguna, karena semua baris dalam partisi akan memiliki tanggal pemesanan yang sama. Karena itu, urutan baris dalam partisi adalah acak. Coba pesan berdasarkan salesorderid dalam klausa partisi demi untuk mendapatkan hasil yang lebih dapat direproduksi.

row_number() baru saja mengembalikan urutan baris dalam setiap partisi



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Cara Menemukan Baris yang Mengandung Huruf Kecil di Oracle

  2. SQL bergabung dengan subkueri

  3. Mungkinkah membuat tipe objek Oracle Database di dalam PL/SQL?

  4. Ubah tabel untuk mengubah nilai default kolom

  5. SQL Server setara dengan TO_CHAR dan konversi format