Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

SQL Lanjutan

Pelajaran 17 dari 18

Window function

Total berjalan dan rata-rata bergerak

Setelah pelajaran ini kamu bisa menghitung total berjalan dan rata-rata bergerak dengan SUM dan AVG OVER beserta frame-nya.

±14 menitDiperiksa 27 Sep 2026

Materi

Fungsi agregat biasa seperti SUM, AVG, COUNT, MIN, dan MAX berubah menjadi window function begitu diberi OVER. SUM(masuk) OVER (ORDER BY tanggal) menjumlahkan dari baris pertama sampai baris yang sedang dihitung, sehingga setiap baris menampilkan total berjalan: saldo kas setelah transaksi itu, atau capaian penjualan sejak awal bulan. OVER dengan kurung kosong menjadikan seluruh hasil satu kelompok tanpa urutan, dan itu cara menaruh total keseluruhan di samping setiap baris, misalnya untuk menghitung persentase.

SELECT tanggal, masuk,
       SUM(masuk) OVER (ORDER BY tanggal) AS saldo,
       AVG(masuk) OVER (ORDER BY tanggal ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS rata_3_hari
FROM kas_harian;

Baris mana saja yang ikut dihitung ditentukan oleh frame. ROWS BETWEEN 2 PRECEDING AND CURRENT ROW berarti dua baris sebelumnya ditambah baris ini, yaitu rata-rata bergerak tiga baris; pada dua baris pertama frame-nya lebih pendek karena baris sebelumnya belum cukup. ROWS menghitung baris satu per satu. Bila frame tidak ditulis, SQLite memakai RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW: dari awal kelompok sampai baris ini, ditambah semua baris lain yang nilai ORDER BY-nya sama dengan baris ini. PARTITION BY tetap berlaku, sehingga total berjalan dapat dimulai ulang dari nol untuk setiap pelanggan atau setiap cabang.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 4 lagi

Sebagian materi kelas ini diadaptasi dari Software Carpentry — Databases and SQL (sql-novice-survey) (CC-BY-4.0), Data Carpentry — SQL for Ecology (CC-BY-4.0), Kaggle learntools — Intro to SQL dan Advanced SQL (Apache-2.0), NUKnightLab — SQL Murder Mystery (CC-BY-SA-4.0).