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:
| bulan | pendapatan | wilayah |
| 4 | 40 | East |
| 5 | 20 | East |
| 6 | 60 | West |
| 7 | 55 | West |
| 8 | 61 | East |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Ini akan menghasilkan:
| bulan | pendapatan | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
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| bulan | pendapatan | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.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 table1Akan memberi kita:
| month | revenue | region | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
Sekarang nilai maksimum dihitung secara terpisah untuk setiap wilayah. Wilayah East dan West masing-masing memiliki nilai maksimum berjalan sendiri.
Tantangan
MudahTabel dan kolom yang tersedia:
books:book,page,words
Untuk setiap buku, tampilkan nama buku, jumlah halamannya, jumlah kata di setiap halaman, dan hitung:
- Jumlah kata maksimum yang ditemukan di halaman mana pun dalam buku tersebut
- Rata-rata jumlah kata per halaman untuk seluruh buku
- 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:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_from_avg
Coba sendiri
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Kata Kunci Lainnya
Kata kunci INKata kunci BETWEENKata kunci LIKEKata kunci ASRangkuman: Model Ponsel2Kondisi
Dasar KondisiKata Kunci ANDKata Kunci ORKata Kunci NOTMenggabungkan Beberapa KondisiTanda KurungNilai Boolean3Format Pengembalian Khusus
Nilai nullUrutkan Hasil Bagian 1Urutkan Hasil Bagian 2Ulasan: Perusahaan Keamanan SiberBatasi Jumlah RecordUlasan: Pabrik Kendaraan6Tantangan Pengantar
Ulasan: Pemilihan ParlemenUlasan: Polisi Menangkap Pelaku KejahatanUlasan: Wadah Minuman BarUlasan: Insinyur Membuat Kolom Baru9Beberapa Tabel
Join Dasar Bagian 1Join Dasar Bagian 2Ringkasan: JoinSelf joinRingkasan: Self joinUnionSederhanakan query dengan kata kunci WITHRingkasan: Query WITHRingkasan: Kontraktor Properti12Fungsi Window bagian 2
Fungsi RANK & DENSE_RANKRingkasan, RANK & DENSE_RANKFungsi NTILEFungsi AgregasiKriteria ROWS & RANGELatihan sendiri: Playground SQL