6.1 Lijst met statistische functies

Wanneer u rijgroepering gebruikt in SQL met de operator GROUP BY, kunt u SELECTfuncties in de instructie gebruiken die werken op de gegroepeerde gegevens. Dergelijke functies worden ook wel statistische functies genoemd.

Hier is een lijst met de meest populaire:

# Functie Beschrijving
1 GRAAF() Retourneert het aantal waarden in een groep
2 SOM() Retourneert de som van waarden in een groep
3 MAX() Retourneert de maximumwaarde van een groep
4 MIN() Retourneert de minimumwaarde van een groep
5 AVG() Retourneert het gemiddelde van een groep
6 BIT_AND() Voert een bitsgewijze AND uit over alle groepswaarden
7 BIT_OR() Voert een bitsgewijze OR uit over alle groepswaarden
8 BIT_XOR() Voert een bitsgewijze XOR uit over alle groepswaarden
9 GROUP_CONCAT() Voegt alle groepswaarden samen tot één string
Dit is geen volledige lijst van geaggregeerde functies, maar de rest is erg specifiek en ik denk niet dat je ze de komende 5 jaar zult gebruiken.Als je ze nog nodig hebt, kun je altijd de officiële documentatie voor je DBMS lezen.

Laten we nu enkele voorbeelden bekijken met onze geaggregeerde functies.

6.2 Analyseren van salarissen van medewerkers

Laten we wat statistieken over onze werknemers uit de werknemerstabel berekenen .

Vraag één: hoeveel medewerkers hebben we?

Als we het aantal van alle records in de tabel willen weten, kunnen we hiervoor de aggregatiefunctie gebruiken COUNT. Het verzoek ziet er als volgt uit:

SELECT COUNT(*) FROM employee

En MySQL geeft als antwoord het getal 6. We hebben 6 medewerkers op de afdeling, waaronder een kat. Oke.

Vraag twee: hoeveel betalen we maandelijks aan alle medewerkers?

Om deze vraag te beantwoorden, moeten we de salarissen van alle werknemers bij elkaar optellen. Hiervoor gebruiken we de aggregatiefunctieSUM()

Het verzoek ziet er als volgt uit:

SELECT SUM(salary) FROM employee

Merk op dat we deze keer de waarden moeten specificeren van welke kolom we samenvatten. We hebben een salariskolom gespecificeerd . We kunnen niet zomaar alle velden in een tabel optellen.

En MySQL retourneert als antwoord het nummer 461000. We hebben 6 medewerkers op de afdeling en het salaris is 461 duizend. Te veel.

En tot slot de derde vraag: wat zijn onze maximum- en minimumsalarissen op de afdeling? Nou, laten we het gemiddelde salaris berekenen. Hiervoor hebben we de functies MIN, MAXen AVG.

De query zal deze keer iets complexer zijn en er als volgt uitzien:

SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee

Het resultaat van deze query zal zijn:

MIN(salaris) AVG(salaris) MAX(salaris)
1000 76833.3333 200000

Het minimumloon op onze afdeling is $ 1.000 – heel goed. Het maximale salaris is 200 duizend, maar dit is de directeur.

Maar het gemiddelde salaris is te hoog, u moet op de een of andere manier de kosten optimaliseren. Laten we nog een kat inhuren en dat is alles :)