Kriteria PARTITION BY
Pelajaran 5 dari 13 dalam kursus SQL Tingkat Lanjut di Coddy.
Opsi lain untuk pengaturan OVER () adalah PARTITION BY
Opsi ini memungkinkan kita memberi nomor pada baris secara terpisah untuk setiap grup
Contohnya:
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type) as row_num
FROM table1Ini akan menghasilkan kolom yang memberi nomor pada setiap type di dalam grupnya sendiri:
| id | type | row_num |
| 132 | t1 | 1 |
| 52 | t2 | 1 |
| 92 | t1 | 2 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
id 92 memiliki row_num 2 karena merupakan baris kedua dengan type t1
Kita juga dapat menggabungkan PARTITION BY dengan ORDER BY:
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1Ini akan memberi nomor pada baris dalam urutan menaik berdasarkan id untuk setiap type:
| id | type | row_num |
| 132 | t1 | 2 |
| 52 | t2 | 1 |
| 92 | t1 | 1 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
Sekarang id 132 memiliki row_num 2 karena nilainya lebih besar dari 92 dan lebih kecil dari 198.
Kita bahkan dapat menentukan beberapa kolom di dalam PARTITION BY:
ROW_NUMBER() OVER (PARTITION BY type, hue)Tantangan
MudahSebuah pabrik sedang membuat pintu. Pabrik itu perlu memberi nomor pada pintu untuk setiap country dan color yang publication_year-nya sebelum 2000. Beri nama kolom ini row_num.
Abaikan pintu tanpa spesifikasi. Urutkan hasilnya secara menaik berdasarkan id.
Coba sendiri
Semua pelajaran di SQL Tingkat Lanjut
4Ringkasan
Tantangan akhir #12Fungsi Jendela bagian 1
Fungsi ROW_NUMBERKriteria ORDER BYKriteria PARTITION BYFungsi LEAD & LAGTantangan rangkuman #1Tantangan rangkuman #2Latihan sendiri: Compiler Python online