Puteți utiliza interogări de bază SQL pentru a prelua date dintr-o bază de date, dar de cele mai multe ori aceasta nu oferă suficiente informații pentru a răspunde cerințelor afacerii. SQL vă oferă, de asemenea, posibilitatea de a grupa rezultatele interogării bazate pe atributele la nivel de rând pentru a aplica funcții agregate folosind clauza GROUP BY. Luați în considerare, de exemplu, un tabel de date alcătuit din atributele de mai jos:
- Comanda ID - o valoare numerică care identifică în mod unic fiecare comandă. Acest câmp este cheia primară pentru baza de date.
- Agent de vânzări - o valoare de text care furnizează numele agentului de vânzări care a vândut produsele. Acest câmp este o cheie străină la un alt tabel care conține informații despre personal.
- Număr de înregistrare client - o valoare numerică corespunzătoare numărului unui cont de client. Acest câmp este, de asemenea, o cheie străină, care face referire la un tabel care conține informații despre contul clientului.
- Venituri - o valoare numerică corespunzătoare valorii dolarului din vânzare.
Când vine timpul să efectueze revizuiri de performanță pentru vânzători, tabelul Comenzi conține informații valoroase care pot fi utilizate pentru revizuirea respectivă. Când ai evaluat-o pe Jim, ai putea, de exemplu, să scrie o interogare simplă care să preia toate înregistrările de vânzări ale lui Jim:
SELECTAȚI *
Din ordine
WHERE Agent de vânzări LIKE 'Jim'
Aceasta va prelua toate înregistrările din baza de date corespunzătoare vânzărilor făcute de Jim: Identificator de vânzări pentru vânzătorul de venituri
12482 Jim 182 40000
12488 Jim 219 25000
12519 Jim 137 85000
12602 Jim 182 10000
12741 Jim 155 90000
Puteți să revedeți aceste informații și să efectuați unele calcule manuale pentru a veni cu statistici de performanță, dar aceasta ar fi o sarcină plictisitoare pe care ar trebui să o repetați pentru fiecare agent de vânzări din companie. În schimb, puteți înlocui această lucrare cu o singură interogare GROUP BY care calculează statisticile pentru fiecare agent de vânzări din companie. Pur și simplu scrieți interogarea și specificați că baza de date trebuie să grupeze rezultatele pe baza câmpului Salesperson. Apoi, puteți utiliza oricare dintre funcțiile agregate SQL pentru a efectua calcule asupra rezultatelor. Iată un exemplu. Dacă ați executat următoarea instrucțiune SQL: SELECTați vânzătorul, SUM (Venituri) AS "Total", MIN (Venituri) AS "Cel mai mic", MAX (Venit) AS "Largest", AVG
Din ordine
GROUP BY Salesperson
Veți obține următoarele rezultate: Agent de vânzări Cel mai mic cel mai mic număr mediu cel mai mare
Jim 250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
După cum puteți vedea, această funcție puternică vă permite să generați rapoarte mici dintr-o interogare SQL, oferind managerului care efectuează revizuirile de performanță informații de afaceri valoroase. Clauza GROUP BY este adesea folosită în bazele de date în acest scop și este un instrument valoros în sacul de trucuri al DBA.