Menu
CoddyTech

Fungsi Agregasi

Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 68 dari 72.

Dengan OVER (ORDER BY ...), fungsi agregasi seperti AVG() atau MAX() dihitung berdasarkan baris hingga baris saat ini, termasuk baris yang memiliki nilai ORDER BY yang sama dengannya. Tanpa ORDER BY di dalam OVER, fungsi tersebut dihitung berdasarkan semua baris, sehingga setiap baris mendapatkan nilai yang sama.
Sebagai contoh, kita dapat menghitung pendapatan maksimum yang diperoleh hingga setiap periode berakhir:

bulanpendapatanwilayah
440East
520East
660West
755West
861East
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Ini akan menghasilkan:

bulanpendapatanmax_revenue
44040
52040
66060
75560
86161

Untuk bulan 4 dan 5, pendapatan maksimum adalah 40, untuk bulan 6 dan 7 adalah 60, dan untuk bulan 8 adalah 61. Ini karena saat menemukan pendapatan baru yang lebih besar, nilainya menggantikan nilai lama dan menggunakan nilai terbesar sejauh ini.

Untuk fungsi AVG(), bentuknya akan seperti ini:

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
bulanpendapatanavg_revenue
44040
52030
66040
75543.75
86147.2

Kita juga dapat mengelompokkan perhitungan berdasarkan kategori tertentu menggunakan PARTITION BY. Contohnya:

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

Akan memberi kita:

monthrevenueregionmax_revenue
440East40
520East40
660West60
755West60
861East61

Sekarang nilai maksimum dihitung secara terpisah untuk setiap wilayah. Wilayah East dan West masing-masing memiliki nilai maksimum berjalan sendiri.

challenge icon

Tantangan

Mudah

Tabel dan kolom yang tersedia:

  • books: book, page, words

Untuk setiap buku, tampilkan nama buku, jumlah halamannya, jumlah kata di setiap halaman, dan hitung:

  1. Jumlah kata maksimum yang ditemukan di halaman mana pun dalam buku tersebut
  2. Rata-rata jumlah kata per halaman untuk seluruh buku
  3. Selisih antara jumlah kata di halaman saat ini dan rata-rata jumlah kata per halaman buku tersebut

Tampilkan hasil yang diurutkan berdasarkan buku dan nomor halaman.

Kembalikan kolom berikut:

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

Coba sendiri

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground SQL