6.1 Lista funcțiilor agregate
Când utilizați gruparea de rânduri în SQL cu operatorul GROUP BY, puteți utiliza SELECTfuncții din instrucțiune care operează pe datele grupate. Astfel de funcții sunt numite și funcții agregate.
Iată o listă cu cele mai populare:
| # | Funcţie | Descriere |
|---|---|---|
| 1 | NUMARA() | Returnează numărul de valori dintr-un grup |
| 2 | SUMĂ() | Returnează suma valorilor dintr-un grup |
| 3 | MAX() | Returnează valoarea maximă a unui grup |
| 4 | MIN() | Returnează valoarea minimă a unui grup |
| 5 | AVG() | Returnează media unui grup |
| 6 | BIT_AND() | Efectuează un AND pe biți peste toate valorile grupului |
| 7 | BIT_OR() | Efectuează un SAU pe biți peste toate valorile grupului |
| 8 | BIT_XOR() | Efectuează un XOR pe biți peste toate valorile grupului |
| 9 | GROUP_CONCAT() | Concatenează toate valorile grupului într-un șir |
Acum să ne uităm la câteva exemple cu funcțiile noastre agregate.
6.2 Analiza salariilor angajatilor
Să calculăm câteva statistici despre angajații noștri din tabelul angajaților .
Întrebarea 1: câți angajați avem?
Dacă dorim să aflăm numărul tuturor înregistrărilor din tabel, atunci putem folosi funcția de agregare pentru aceasta COUNT. Cererea va arăta astfel:
SELECT COUNT(*) FROM employee
Iar MySQL va returna ca răspuns numărul 6. Avem 6 angajați în departament, inclusiv o pisică. În regulă.
Întrebarea a doua: cât plătim pe lună tuturor angajaților?
Pentru a răspunde la această întrebare, trebuie să însumăm salariile tuturor angajaților. Pentru a face acest lucru, folosim funcția de agregareSUM()
Cererea va arăta astfel:
SELECT SUM(salary) FROM employee
Rețineți că de data aceasta ni se cere să specificăm valorile coloanei pe care o rezumăm. Am specificat o coloană de salariu . Nu putem doar să însumăm toate câmpurile dintr-un tabel.
Și MySQL va returna ca răspuns numărul 461000. Avem 6 angajați în departament, iar salariul este de 461 mii. Prea mult.
Și în sfârșit, a treia întrebare: care sunt salariile noastre maxime și minime în catedră? Ei bine, să calculăm salariul mediu. Pentru a face acest lucru, avem nevoie de funcțiile MIN, MAXși AVG.
Interogarea va fi ceva mai complexă de data aceasta și va arăta astfel:
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
Rezultatul acestei interogări va fi:
| MIN(salariu) | AVG(salariu) | MAX(salariu) |
|---|---|---|
| 1000 | 76833.3333 | 200000 |
Salariul minim în departamentul nostru este de 1.000 de dolari – foarte bun. Salariul maxim este de 200 de mii, dar acesta este directorul.
Dar salariul mediu este prea mare, trebuie să optimizați cumva costurile. Hai sa mai angajam o pisica si gata :)
GO TO FULL VERSION