sql >> Database >  >> RDS >> MariaDB

AVG()-functie in MariaDB

In MariaDB, de AVG() functie retourneert de gemiddelde waarde van de gegeven uitdrukking.

De DISTINCT optie kan worden gebruikt om het gemiddelde van de afzonderlijke waarden te retourneren (d.w.z. verwijder duplicaten voordat het gemiddelde wordt berekend).

NULL waarden worden genegeerd.

Voorbeeldgegevens

Stel dat we een tabel hebben met de volgende gegevens:

SELECT 
    VendorId,
    ProductName,
    ProductPrice 
FROM Products;

Resultaat:

+----------+---------------------------------+--------------+
| 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 |
+----------+---------------------------------+--------------+

Voorbeeld

We kunnen de volgende zoekopdracht gebruiken om het gemiddelde van alle prijzen te krijgen.

SELECT AVG(ProductPrice)
FROM Products;

Resultaat:

52.898750

In dit geval wordt prijsinformatie opgeslagen in de ProductPrice kolom, en dus hebben we dat als argument doorgegeven aan de AVG() functie, die vervolgens het gemiddelde berekende en het resultaat retourneerde.

Gefilterde resultaten

De AVG() functie werkt op de rijen die door de query worden geretourneerd. Dus als u de resultaten filtert, wordt het resultaat van AVG() zal dat weerspiegelen.

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

Resultaat:

19.680000

In dit geval is 19.680000 de gemiddelde prijs van alle producten die door de opgegeven leverancier worden aangeboden.

De DISTINCT Zoekwoord

U kunt de DISTINCT . gebruiken zoekwoord met AVG() om alleen verschillende waarden te berekenen. Dat wil zeggen, als er dubbele waarden zijn, worden deze als één waarde behandeld.

Voorbeeld:

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

Resultaat:

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

In dit geval delen twee items dezelfde prijs (de linkshandige schroevendraaier en de rechtshandige schroevendraaier kosten beide 25,99). Daarom is de AVG() functie, indien gebruikt met de DISTINCT trefwoord, behandelt beide waarden als één en berekent het resultaat dienovereenkomstig.

Vensterfuncties

De AVG() functie kan worden gebruikt in vensterfuncties. Zie SQL AVG() voor beginners voor een voorbeeld hiervan.


  1. Een koude stand-by maken voor PostgreSQL met Amazon AWS

  2. Hoe maak je verbinding met een LDAP-server via node-oracledb?

  3. De verbindingspool voor database '/data/data/msv_database.db' heeft geen verbinding kunnen maken. Verbindingen:0 actief, 1 inactief, 0 beschikbaar

  4. Alias ​​gebruiken in When-gedeelte van een Case-instructie in Oracle SQL