Window Function
Fungsi SQL yang melakukan kalkulasi pada sekumpulan baris yang berhubungan dengan baris saat ini, tanpa menggabungkan baris seperti GROUP BY.
Window Function (juga disebut Analytic Function) adalah fungsi SQL yang beroperasi pada "window" (jendela) baris yang didefinisikan relatif terhadap baris saat ini, sambil tetap mempertahankan detail setiap baris.
Window Function vs Aggregate
| Aspek | Aggregate (GROUP BY) | Window Function |
|---|---|---|
| Output | Satu baris per grup | Semua baris tetap ada |
| Detail | Hilang setelah group | Dipertahankan |
| Contoh | SUM() GROUP BY | SUM() OVER (PARTITION BY) |
Sintaks Window Function
fungsi() OVER (
[PARTITION BY kolom] -- kelompok (seperti GROUP BY)
[ORDER BY kolom] -- urutan dalam partisi
[ROWS/RANGE frame] -- batas window
)
Kategori Window Function
Ranking
- ROW_NUMBER() - nomor baris unik dalam partisi
- RANK() - ranking dengan gap untuk tie
- DENSE_RANK() - ranking tanpa gap
Offset / Navigation
- LAG(col, n) - nilai n baris sebelumnya
- LEAD(col, n) - nilai n baris sesudahnya
- FIRST_VALUE() / LAST_VALUE() - nilai pertama/terakhir di window
Aggregate (tanpa GROUP BY)
- SUM() OVER - running total atau total per partisi
- AVG() OVER - moving average
- COUNT() OVER - running count
Lanjut Latihan
Mulai Latihan →Udah paham Window Function? Lanjut latihan SQL dan Excel yuk!
Latihan interaktif, langsung di browser.