Pengelompokan dengan NTILE dan Cume_Dist
Bagi baris menjadi N kelompok berukuran sama dengan NTILE, lalu hitung distribusi kumulatif dengan CUME_DIST dan PERCENT_RANK
Pengelompokan dengan NTILE dan Cume_Dist adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
NTILE: Kelompok Berukuran Sama
NTILE(n) membagi baris yang diurutkan menjadi n kelompok dengan ukuran yang kira-kira sama:
SELECT id, total,
NTILE(4) OVER (ORDER BY total) AS quartile
FROM orders;
-- 1 = bottom 25%, 2 = next, 3, 4 = top 25%Kelompok Persentil
Gunakan NTILE(10) untuk desil dan NTILE(100) untuk persentil:
SELECT id, score,
NTILE(100) OVER (ORDER BY score DESC) AS percentile
FROM students;
-- percentile 1 = top 1%PERCENT_RANK
Peringkat relatif sebagai bilangan pecahan dalam [0, 1]:
SELECT id, score,
PERCENT_RANK() OVER (ORDER BY score) AS pct_rank
FROM students;
-- 0 for the lowest, 1 for the highest.CUME_DIST
Proporsi baris yang nilainya ≤ nilai baris saat ini:
SELECT id, score,
CUME_DIST() OVER (ORDER BY score) AS cume_dist
FROM students;
-- "What share of students scored ≤ this one?"Statistik Persentil dengan PERCENTILE_CONT
Hitung nilai pada suatu persentil (interpolasi kontinu):
SELECT
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY total) AS median,
PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY total) AS p95,
PERCENTILE_CONT(0.99) WITHIN GROUP (ORDER BY total) AS p99
FROM orders;PERCENTILE_DISC
Seperti PERCENTILE_CONT, tetapi mengembalikan nilai yang benar-benar ada, bukan nilai hasil interpolasi:
PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY total)NTILE pada Partisi
Buat kelompok per pengguna, per kategori, dan sebagainya:
SELECT user_id, total,
NTILE(4) OVER (PARTITION BY user_id ORDER BY total) AS user_quartile
FROM orders;Histogram melalui NTILE
Buat bin histogram:
SELECT bucket, MIN(total) AS bucket_min, MAX(total) AS bucket_max, COUNT(*)
FROM (
SELECT NTILE(10) OVER (ORDER BY total) AS bucket, total
FROM orders
) sub
GROUP BY bucket
ORDER BY bucket;Menggabungkan per Kelompok
Setelah pembagian ke dalam kelompok, hitung statistik untuk setiap kelompok:
SELECT user_quartile, COUNT(*) AS users, AVG(total) AS avg_total
FROM (
SELECT user_id, NTILE(4) OVER (ORDER BY total) AS user_quartile, total
FROM orders
) sub
GROUP BY user_quartile;Menggabungkan Fungsi Jendela
Campurkan semuanya dalam satu kueri untuk membuat laporan yang kaya:
SELECT id, total,
NTILE(4) OVER w AS quartile,
PERCENT_RANK() OVER w AS pct_rank,
AVG(total) OVER w AS overall_avg
FROM orders
WINDOW w AS (ORDER BY total);Saat NTILE Menyesatkan
Nilai yang sama pada ORDER BY dapat menghasilkan ukuran kelompok yang tidak merata (NTILE tidak memperhitungkan nilai yang sama). Gunakan kolom pemecah seri.
Ringkasan
NTILE + PERCENT_RANK + CUME_DIST mencakup analisis distribusi.
- NTILE untuk kelompok kuantil
- PERCENTILE_CONT/DISC untuk statistik p50/p95/p99
- Gabungkan dengan PARTITION BY untuk analisis per grup
Pemeriksaan Singkat
Anda memerlukan latensi p95 dari kolom waktu respons. Fungsi apa yang digunakan?
Belajar SQL dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 46
- Pelajaran
- 183
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pengelompokan dengan NTILE dan Cume_Dist” gratis?
Ya — teks lengkap “Pengelompokan dengan NTILE dan Cume_Dist” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pengelompokan dengan NTILE dan Cume_Dist”?
Bagi baris menjadi N kelompok berukuran sama dengan NTILE, lalu hitung distribusi kumulatif dengan CUME_DIST dan PERCENT_RANK Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pengelompokan dengan NTILE dan Cume_Dist” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Klausa Bingkai: ROWS vs RANGE
- Lag/Lead dengan Jendela Bingkai
- Pengelompokan dengan NTILE dan Cume_Dist
- Pola Pelaporan di Dunia Nyata