Ce face AVG
AVG adună valorile și împarte la numărul lor. Valorile NULL nu intră în calcul, nici la sumă, nici la numărare.
Pe coloane cu numere întregi, MySQL afișează media cu patru zecimale. Folosește ROUND(AVG(...), 2) pentru un rezultat mai ușor de citit.
Ce returnează
Media, ca număr zecimal, sau NULL dacă nu există valori.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE produse (
id INT PRIMARY KEY,
nume VARCHAR(50) NOT NULL,
categorie VARCHAR(30),
pret INT,
stoc INT
);
INSERT INTO produse VALUES
(1, 'Laptop', 'Electronice', 3500, 4),
(2, 'Mouse', 'Electronice', 80, 25),
(3, 'Birou', 'Mobilier', 900, 0),
(4, 'Scaun', 'Mobilier', 650, 7),
(5, 'Monitor', 'Electronice', 1200, 3);
Exemplul 1: Prețul mediu
SELECT AVG(pret), ROUND(AVG(pret), 2) FROM produse;
Rezultat în MySQL
+-----------+---------------------+
| AVG(pret) | ROUND(AVG(pret), 2) |
+-----------+---------------------+
| 1266.0000 | 1266.00 |
+-----------+---------------------+
Exemplul 2: Media pe categorii
SELECT categorie, ROUND(AVG(pret), 2) AS pret_mediu
FROM produse
GROUP BY categorie
ORDER BY categorie;
Rezultat în MySQL
+-------------+------------+
| categorie | pret_mediu |
+-------------+------------+
| Electronice | 1593.33 |
| Mobilier | 775.00 |
+-------------+------------+
Greșeli frecvente
- Te aștepți ca rândurile cu
NULLsă conteze ca 0. Nu contează deloc. Dacă vrei să le numeri ca 0, scrieAVG(COALESCE(coloana, 0)).