Running Total (SUM OVER) di SQL

Total berjalan atau kumulatif: menjumlahkan nilai dari baris pertama sampai baris saat ini.

Penjelasan sederhana

Running total atau total kumulatif adalah penjumlahan berjalan: di setiap baris, nilainya adalah total dari baris pertama sampai baris itu. Di Excel biasanya dibuat dengan rumus seperti =SUM($B$2:B2) lalu ditarik ke bawah.

Di SQL caranya dengan SUM(...) OVER (ORDER BY ...). Urutan di ORDER BY menentukan arah penjumlahannya, biasanya tanggal.

Sintaks

SUM(kolom) OVER (ORDER BY kolom_urut)
BagianKeterangan
ORDER BYUrutan penjumlahan, biasanya tanggal.

Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.

Contoh Running Total (SUM OVER)

Data contoh: penjualan

Tabel penjualan

idtanggalkaryawan_idprodukkategoriqtyharga
1 2026-01-05 4 Laptop Elektronik 2 8500000
2 2026-01-12 6 Printer Elektronik 1 2300000
3 2026-01-20 4 Kursi Kantor Furnitur 5 1200000
4 2026-02-03 6 Laptop Elektronik 1 8500000
5 2026-02-14 4 Meja Kerja Furnitur 3 1750000
6 2026-02-25 5 Kertas A4 ATK 20 55000
7 2026-03-02 6 Kursi Kantor Furnitur 4 1200000
8 2026-03-10 4 Printer Elektronik 2 2300000
9 2026-03-18 5 Kertas A4 ATK 30 55000
10 2026-03-27 6 Monitor Elektronik 3 1900000
query.sql
SELECT tanggal, qty * harga AS omzet,
       SUM(qty * harga) OVER (ORDER BY tanggal) AS kumulatif
FROM penjualan;
>_ Jalankan & ubah query ini di browser

Hasil 10 baris

tanggalomzetkumulatif
2026-01-05 17000000 17000000
2026-01-12 2300000 19300000
2026-01-20 6000000 25300000
2026-02-03 8500000 33800000
2026-02-14 5250000 39050000
2026-02-25 1100000 40150000
2026-03-02 4800000 44950000
2026-03-10 4600000 49550000
2026-03-18 1650000 51200000
2026-03-27 5700000 56900000

Kolom kumulatif menunjukkan total omzet sejak awal tahun sampai tanggal tersebut.

Cara kerjanya, langkah demi langkah

  1. FROM penjualan: 10 transaksi diambil.
  2. ORDER BY tanggal: transaksi diurutkan dari yang paling awal.
  3. Baris pertama (5 Jan): kumulatifnya sama dengan omzetnya, 17.000.000.
  4. Baris kedua (12 Jan): 17.000.000 + 2.300.000 = 19.300.000. Baris ketiga: ditambah 6.000.000 menjadi 25.300.000.
  5. Begitu seterusnya sampai baris terakhir, yang nilainya sama dengan total seluruh omzet, 56.900.000.

Dipakai untuk apa di kantor?

  • Memantau pencapaian target dari awal bulan sampai hari ini.
  • Grafik pertumbuhan jumlah pelanggan dari waktu ke waktu.
  • Saldo berjalan di buku kas.

Kesalahan yang sering terjadi

  • Ada dua transaksi di tanggal yang sama. Keduanya bisa mendapat nilai kumulatif yang sama. Tambahkan kolom pengurut kedua, misalnya id: ORDER BY tanggal, id.
Progres bab Window Function 0/5 dipelajari
Lanjut: LAG & LEAD

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class