sql >> Database teknologi >  >> RDS >> MariaDB

AVG() Funktion i MariaDB

I MariaDB er AVG() funktion returnerer gennemsnitsværdien af ​​det givne udtryk.

DISTINCT mulighed kan bruges til at returnere gennemsnittet af de forskellige værdier (dvs. fjern dubletter før gennemsnittet beregnes).

NULL værdier ignoreres.

Eksempel på data

Antag, at vi har en tabel med følgende data:

SELECT 
    VendorId,
    ProductName,
    ProductPrice 
FROM Products;

Resultat:

+----------+---------------------------------+--------------+
| VendorId | ProductName                     | ProductPrice |
+----------+---------------------------------+--------------+
|     1001 | Left handed screwdriver         |        25.99 |
|     1001 | Right handed screwdriver        |        25.99 |
|     1001 | Long Weight (blue)              |        14.75 |
|     1001 | Long Weight (green)             |        11.99 |
|     1002 | Sledge Hammer                   |        33.49 |
|     1003 | Chainsaw                        |       245.00 |
|     1003 | Straw Dog Box                   |        55.99 |
|     1004 | Bottomless Coffee Mugs (4 Pack) |         9.99 |
+----------+---------------------------------+--------------+

Eksempel

Vi kan bruge følgende forespørgsel til at få gennemsnittet af alle priser.

SELECT AVG(ProductPrice)
FROM Products;

Resultat:

52.898750

I dette tilfælde gemmes prisoplysninger i ProductPrice kolonne, og så vi sendte det som et argument til AVG() funktion, som derefter beregnede gennemsnittet og returnerede resultatet.

Filtrerede resultater

AVG() funktionen fungerer på de rækker, der returneres af forespørgslen. Så hvis du filtrerer resultaterne, vil resultatet af AVG() vil afspejle det.

SELECT AVG(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Resultat:

19.680000

I dette tilfælde er 19,680000 gennemsnitsprisen for alle de produkter, der tilbydes af den angivne leverandør.

DISTINCT Søgeord

Du kan bruge DISTINCT søgeord med AVG() kun at beregne distinkte værdier. Det vil sige, at hvis der er nogen duplikerede værdier, behandles de som én værdi.

Eksempel:

SELECT 
    AVG(ProductPrice) AS "All",
    AVG(DISTINCT ProductPrice) AS "Distinct"
FROM Products;

Resultat:

+-----------+-----------+
| All       | Distinct  |
+-----------+-----------+
| 52.898750 | 56.742857 |
+-----------+-----------+

I dette tilfælde deler to varer den samme pris (venstrehåndsskruetrækker og højrehåndsskruetrækker er begge prissat til 25,99). Derfor er AVG() funktion, når den bruges sammen med DISTINCT søgeord, behandler begge disse værdier som én og beregner resultatet i overensstemmelse hermed.

Vinduefunktioner

AVG() funktion kan bruges i vinduesfunktioner. Se SQL AVG() for begyndere for et eksempel på dette.


  1. Hvilken SqlDbType knytter til varBinary(max)?

  2. Tilfældig registrering fra en databasetabel (T-SQL)

  3. PGError:FEJL:tilladelse nægtet til relation (når du bruger Heroku)

  4. Hvordan kopierer man en post i en SQL-tabel, men udskifter det unikke id for den nye række?