Aggregerte funksjoner

Tilgjengelig

6.1 Liste over aggregerte funksjoner

Når du bruker radgruppering i SQL med operatoren GROUP BY, kan du bruke SELECTfunksjoner i setningen som opererer på de grupperte dataene. Slike funksjoner kalles også aggregerte funksjoner.

Her er en liste over de mest populære:

# Funksjon Beskrivelse
1 TELLE() Returnerer antall verdier i en gruppe
2 SUM() Returnerer summen av verdier i en gruppe
3 MAKS() Returnerer maksimumsverdien for en gruppe
4 MIN() Returnerer minimumsverdien for en gruppe
5 AVG() Returnerer gjennomsnittet av en gruppe
6 BIT_AND() Utfører bitvis OG over alle gruppeverdier
7 BIT_OR() Utfører bitvis ELLER over alle gruppeverdier
8 BIT_XOR() Utfører en bitvis XOR over alle gruppeverdier
9 GROUP_CONCAT() Slår sammen alle gruppeverdier til én streng
Dette er ikke en komplett liste over aggregerte funksjoner, men resten er veldig spesifikke og jeg tror ikke du kommer til å bruke dem i løpet av de neste 5 årene Hvis du fortsatt trenger dem, kan du alltid lese den offisielle dokumentasjonen for DBMS.

La oss nå se på noen eksempler med våre aggregerte funksjoner.

6.2 Analysere ansattes lønn

La oss beregne litt statistikk om våre ansatte fra ansatttabellen .

Spørsmål en: hvor mange ansatte har vi?

Hvis vi ønsker å finne ut antallet av alle poster i tabellen, så kan vi bruke aggregeringsfunksjonen til dette COUNT. Forespørselen vil se slik ut:

SELECT COUNT(*) FROM employee

Og som svar vil MySQL returnere tallet 6. Vi har 6 ansatte på avdelingen, inkludert en katt. Greit.

Spørsmål to: hvor mye betaler vi per måned til alle ansatte?

For å svare på dette spørsmålet må vi summere lønnen til alle ansatte. For å gjøre dette bruker vi aggregatfunksjonenSUM()

Forespørselen vil se slik ut:

SELECT SUM(salary) FROM employee

Merk at vi denne gangen må spesifisere verdiene for hvilken kolonne vi oppsummerer. Vi har spesifisert en lønnskolonne . Vi kan ikke bare summere alle feltene i en tabell.

Og som svar vil MySQL returnere nummer 461000. Vi har 6 ansatte på avdelingen, og lønnen er 461 tusen. For mye.

Og til slutt, det tredje spørsmålet: hva er vår høyeste og minste lønn i avdelingen? Vel, la oss beregne gjennomsnittslønnen. For å gjøre dette trenger vi funksjonene MIN, MAXog AVG.

Spørringen vil være litt mer kompleks denne gangen og se slik ut:

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

Resultatet av denne spørringen vil være:

MIN(lønn) AVG(lønn) MAX(lønn)
1000 76833.3333 200 000

Minstelønnen i vår avdeling er $1000 – veldig bra. Maksimal lønn er 200 tusen, men dette er direktøren.

Men gjennomsnittslønnen er for høy, du må på en eller annen måte optimalisere kostnadene. La oss ansette en annen katt og det er det :)

Kommentarer
  • Populær
  • Ny
  • Gammel
Du må være pålogget for å legge igjen en kommentar
Denne siden har ingen kommentarer ennå