Fungsi agregat mengira satu nilai daripada satu set baris — COUNT, SUM, AVG, MIN, MAX. Ia penting untuk meringkaskan data (jumlah, purata, kiraan), terutamanya digabungkan dengan .
Fungsi agregat mengira satu nilai daripada satu set baris — COUNT, SUM, AVG, MIN, MAX. Ia penting untuk meringkaskan data (jumlah, purata, kiraan), terutamanya digabungkan dengan .
GROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
Setiap fungsi mengurangkan banyak baris kepada satu nilai. SUM/AVG berfungsi pada nombor; MIN/MAX pada nombor, tarikh, atau teks; COUNT pada apa-apa sahaja.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) mengira semua baris, tetapi COUNT(column) mengira hanya baris di mana lajur itu bukan NULL — perbezaan yang halus tetapi penting. COUNT(DISTINCT col) mengira nilai unik.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
Tanpa GROUP BY, agregat meringkaskan keseluruhan keputusan kepada satu baris. Dengan GROUP BY, ia menghasilkan satu baris ringkasan per kumpulan — penggunaan tipikal yang berkuasa.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
Fungsi agregat penting untuk meringkaskan dan menganalisis data — mengira jumlah, purata, kiraan, dan nilai melampau ialah keperluan berterusan dalam pelaporan, analitik, papan pemuka, dan logik aplikasi, jadi memahaminya adalah pengetahuan SQL yang asas.
Mengetahui fungsi utama (COUNT, SUM, AVG, MIN, MAX) dan bagaimana ia mengurangkan set baris kepada nilai tunggal adalah perlu untuk sebarang peringkasan data.
Butiran penting yang kerap disalahfahamkan ialah perbezaan COUNT(*) lwn COUNT(column) (COUNT(*) mengira semua baris, COUNT(column) mengira hanya nilai bukan-NULL — yang boleh memberi keputusan berbeza dan mengejutkan), bersama-sama dengan COUNT(DISTINCT) untuk nilai unik.
Yang paling berkuasa, agregat bergabung dengan GROUP BY untuk menghasilkan ringkasan per kumpulan (kiraan/purata per kategori) — asas pertanyaan analitik.
Memahami perangkap bahawa anda tidak boleh mencampurkan agregat dengan lajur bukan kumpulan (ralat yang biasa) juga penting.
Memandangkan meringkaskan data ialah tugas pangkalan data yang ada di mana-mana (setiap laporan, papan pemuka, dan pertanyaan analitik menggunakan agregat), dan memandangkan memahami fungsi, kehalusan COUNT, dan terutamanya gabungannya dengan GROUP BY adalah asas kepada analisis data dalam SQL, menguasai fungsi agregat ialah pengetahuan teras yang kerap digunakan yang penting untuk bekerja dengan data — merapatkan pertanyaan asas dan kuasa analitik serta peringkasan yang menjadikan SQL berharga untuk pelaporan dan wawasan.