Fungsi NTILE
Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 67 dari 72.
NTILE(n) memberi nomor pada baris dengan membaginya menjadi n bagian yang kurang lebih sama. Fungsi ini sering digunakan untuk meningkatkan performa. Mengirim data dalam jumlah besar sekaligus mungkin bukan ide yang baik, jadi fungsi ini memungkinkan pengiriman data dalam bagian yang lebih kecil secara bertahap.
Contohnya:
| id | level |
| 1 | 4 |
| 2 | 4 |
| 3 | 5 |
| 4 | 6 |
| 5 | 7 |
| 6 | 7 |
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1Hasilnya akan seperti ini:
| id | level | pieces |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
Kita mendapatkan 3 bagian: level 4 di bagian 1, level 5 dan level 6 di bagian 2, serta level 7 di bagian 3.
Jika jumlah baris tidak habis dibagi n, NTILE mendistribusikan baris semerata mungkin, dengan grup yang lebih besar muncul lebih dulu. Misalnya, jika kamu memiliki 9 baris dan NTILE(4), distribusinya akan seperti berikut:
- Grup 1: 3 baris
- Grup 2: 2 baris
- Grup 3: 2 baris
- Grup 4: 2 baris
Ini memastikan bahwa jumlah baris dalam setiap grup berbeda paling banyak satu baris dari grup lainnya, dan baris tambahan dibagikan ke grup bernomor lebih rendah terlebih dahulu.
Tantangan
MudahTabel dan kolom yang tersedia:
creatures:creature_name,preference,has_legs(berisi 'YES' atau 'NO')
Dalam tantangan ini, kita memiliki makhluk yang ingin mencari pasangan. Kita perlu membantu mereka menemukan pasangan yang cocok.
Setiap makhluk memiliki preferensi yang dinyatakan sebagai angka. Jika angka yang dimiliki kedua makhluk cukup berdekatan, mereka mungkin cocok.
Bagi makhluk menjadi 3 grup berdasarkan nilai preferensinya, tetapi hanya pertimbangkan makhluk yang memiliki kaki (dengan has_legs = 'YES'). Kembalikan creature_name, preference, dan group_number mereka (1, 2, atau 3). Urutkan hasil berdasarkan preference secara menaik.
Coba sendiri
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Kata Kunci Lainnya
Kata kunci INKata kunci BETWEENKata kunci LIKEKata kunci ASRangkuman: Model Ponsel2Kondisi
Dasar KondisiKata Kunci ANDKata Kunci ORKata Kunci NOTMenggabungkan Beberapa KondisiTanda KurungNilai Boolean3Format Pengembalian Khusus
Nilai nullUrutkan Hasil Bagian 1Urutkan Hasil Bagian 2Ulasan: Perusahaan Keamanan SiberBatasi Jumlah RecordUlasan: Pabrik Kendaraan6Tantangan Pengantar
Ulasan: Pemilihan ParlemenUlasan: Polisi Menangkap Pelaku KejahatanUlasan: Wadah Minuman BarUlasan: Insinyur Membuat Kolom Baru9Beberapa Tabel
Join Dasar Bagian 1Join Dasar Bagian 2Ringkasan: JoinSelf joinRingkasan: Self joinUnionSederhanakan query dengan kata kunci WITHRingkasan: Query WITHRingkasan: Kontraktor Properti12Fungsi Window bagian 2
Fungsi RANK & DENSE_RANKRingkasan, RANK & DENSE_RANKFungsi NTILEFungsi AgregasiKriteria ROWS & RANGELatihan sendiri: Playground SQL