Fungsi agregasi
Pelajaran 11 dari 13 dalam kursus SQL Tingkat Lanjut di Coddy.
Fungsi agregasi digunakan untuk menghitung AVG() atau MAX() atau fungsi agregasi lainnya hingga baris saat ini.
Misalnya, kita bisa menghitung pendapatan maksimum yang diperoleh hingga setiap periode akhir:
| month | revenue |
| 4 | 40 |
| 5 | 20 |
| 6 | 60 |
| 7 | 55 |
| 8 | 61 |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Hasilnya:
| month | revenue | 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 5 dan 6, pendapatannya adalah 60, sedangkan untuk bulan 8, nilainya 61. Ini karena saat menemukan pendapatan baru yang lebih besar, nilai lama dihapus dan diganti dengan nilai terbesar sejauh ini.
Untuk fungsi AVG(), hasilnya akan seperti ini:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| month | revenue | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
Tantangan
MudahBuku memiliki banyak halaman dan setiap halaman memiliki banyak kata.
Dalam tantangan ini, kita akan menghitung berbagai metrik tentang buku-buku ini.
Ambil untuk setiap buku jumlah total kata, jumlah kata maksimum dan jumlah kata minimum, serta rata-rata kata hingga setiap halaman, beri nama kolom-kolom ini secara berurutan: total_words, max_words, min_words, avg_words. Selain itu, beri peringkat padat pada halaman (untuk setiap buku) dengan menghitung rasio: (avg_words-min_words)/(total_words-min_words) dalam urutan menaik untuk setiap buku, beri nama kolom ini ratio_rank. Terakhir, urutkan hasil berdasarkan book, lalu ratio_rank dalam urutan menaik.
Coba sendiri
Semua pelajaran di SQL Tingkat Lanjut
Latihan sendiri: Compiler Python online