Window Function

Menengah

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

AspekAggregate (GROUP BY)Window Function
OutputSatu baris per grupSemua baris tetap ada
DetailHilang setelah groupDipertahankan
ContohSUM() GROUP BYSUM() 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

Udah paham Window Function? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →