sql >> Databasteknik >  >> RDS >> MariaDB

AVG() Funktion i MariaDB

I MariaDB, AVG() funktion returnerar medelvärdet för det givna uttrycket.

DISTINCT alternativet kan användas för att returnera medelvärdet av de distinkta värdena (dvs. ta bort dubbletter innan genomsnittet beräknas).

NULL värden ignoreras.

Exempeldata

Anta att vi har en tabell med följande 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 |
+----------+---------------------------------+--------------+

Exempel

Vi kan använda följande fråga för att få ett genomsnitt av alla priser.

SELECT AVG(ProductPrice)
FROM Products;

Resultat:

52.898750

I det här fallet lagras prisinformation i ProductPrice kolumnen, och så skickade vi det som ett argument till AVG() funktion, som sedan beräknade medelvärdet och returnerade resultatet.

Filtrerade resultat

AVG() funktionen fungerar på raderna som returneras av frågan. Så om du filtrerar resultaten blir resultatet av AVG() kommer att återspegla det.

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

Resultat:

19.680000

I det här fallet är 19,680000 genomsnittspriset för alla produkter som erbjuds av den angivna leverantören.

DISTINCT Nyckelord

Du kan använda DISTINCT nyckelord med AVG() för att endast beräkna distinkta värden. Det vill säga, om det finns några dubbletter av värden, behandlas de som ett värde.

Exempel:

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

Resultat:

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

I det här fallet delar två artiklar samma pris (vänsterskruvmejseln och högerskruvmejseln kostar båda 25,99). Därför är AVG() funktion, när den används med DISTINCT nyckelord, behandlar båda dessa värden som ett och beräknar resultatet därefter.

Fönsterfunktioner

AVG() funktion kan användas i fönsterfunktioner. Se SQL AVG() för nybörjare för ett exempel på detta.


  1. Vad är nytt i MySQL Galera Cluster 4.0

  2. ClusterControl 1.5 - Automatisk verifiering av säkerhetskopiering, bygg slav från säkerhetskopiering och molnintegrering

  3. hur man delar strängen i olika kolumner?

  4. De bästa varnings- och meddelandeverktygen för PostgreSQL