SQL Server AVG -funksjon

SQL Server AVG -funksjon

Mål: Denne opplæringen tar sikte på å hjelpe deg med å forstå hvordan du beregner gjennomsnittet av et gitt sett med verdier i SQL Server ved å bruke AVG () -funksjonen.

SQL Server AVG -funksjon

AVG () -funksjonen er en samlet funksjon som lar deg bestemme gjennomsnittet for et gitt sett med verdier. Funksjonen vil ignorere nullverdier i inngangen.

Følgende viser syntaks for AVG () -funksjonen:

AVG ([alle | distinkt] uttrykk)
[Over ([Partition_by_clause] Order_by_clause)]

Funksjonsargumenter

Funksjonen støtter følgende argumenter:

  1. ALLE - All nøkkelord bruker AVG () -funksjonen for alle verdier i det medfølgende settet. Dette er standardalternativet for funksjonen.
  2. DISTINKT - Dette nøkkelordet lar deg bruke funksjonen bare på det gitte settets distinkte verdier. Dette alternativet vil ignorere alle dupliserte verdier uansett antall ganger verdien oppstår i settet.
  3. uttrykk - Dette definerer et sett med verdier eller et uttrykk som returnerer en numerisk verdi.
  4. Over partisjon_by | ordre_by_claus - Dette spesifiserer tilstanden som brukes til å dele uttrykket i forskjellige partisjoner der funksjonen brukes. Order_by_clause definerer rekkefølgen for verdiene i de resulterende partisjonene.

Funksjonsreturverdien vil avhenge av inndatatypen. Følgende tabell viser den tilsvarende utgangstypen for en gitt inngangstype.

Inngangstype Resulterende type
Tinyint int
int int
SmallInt int
Bigint Bigint
flyte og ekte flyte
Penger/SmallMoney penger
desimal desimal

Eksempelbruk

La oss se på noen eksempelbruk for AVG () -funksjonen.

Eksempel 1 - Bruke AVG () med distinkt

Følgende eksempel oppretter en eksempeltabell og setter inn noen tilfeldige verdier.

Drop -databasen hvis eksisterer Sample_DB;
opprette databaseprøve_db;
Bruk prøve_db;
Lag tabell TBL (
Tilfeldig int,
);
Sett inn TBL (tilfeldig)
verdier (101), (69), (62), (99), (45), (80), (66), (61), (46), (28), (66);

I følgende spørsmål bruker vi AVG () -funksjonen for å bestemme gjennomsnittet for de distinkte verdiene i kolonnen som vist:

Velg AVG (distinkt tilfeldig) som gjennomsnitt fra TBL;

I dette tilfellet beregner funksjonen gjennomsnittet for unike verdier i kolonnen. Den resulterende verdien er som vist:

Eksempel 2 - Bruke AVG () -funksjonen med alle

For å la funksjonen inkludere dupliserte verdier, kan vi bruke alt nøkkelordet som vist:

Velg AVG (alle tilfeldige) som gjennomsnitt fra TBL;

I dette tilfellet vurderer funksjonen alle elleve verdier i stedet for 10 som tidligere anvendt.

MERK: Avhengig av den resulterende typen, kan verdien avrundes, og gjøre bruken av alle og distinkte ubetydelig.

For eksempel:

101+69+62+99+45+80+66+61+46+28+66/11 = 65.7272727273
101+69+62+99+45+80+66+61+46+28/10 = 65.7

Som du ser fra utgangen ovenfor, vises forskjellen hovedsakelig når den resulterende typen er en flytende punktverdi.

Bruke AVG -funksjonen med Group by Clause

Tenk på tabellen nedenfor:

Vi kan beregne gjennomsnittsprisen for hvert produkt av en gitt produsent som bruker gruppen etter klausul og AVG () -funksjonen som illustrert nedenfor:

Velg produsent, AVG (pris) som 'gjennomsnittspris', sum (mengde) som 'på lager'
fra produkter
gruppe av produsent;

Spørringen ovenfor bør organisere radene i forskjellige partisjoner basert på produsenten. Vi beregner deretter gjennomsnittsprisen for alle produktene i hver partisjon.

Det resulterende tabellen er som vist:

Konklusjon

I dette innlegget dekket vi grunnleggende om å jobbe med AVG -funksjonen i SQL Server for å bestemme gjennomsnittet for et gitt sett med verdier.

Takk for at du leste!!