MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Функция AVG() в MariaDB

В MariaDB, AVG() функцията връща средната стойност на дадения израз.

DISTINCT опцията може да се използва за връщане на средната стойност на отделните стойности (т.е. премахване на дубликати, преди да се изчисли средната стойност).

NULL стойностите се игнорират.

Примерни данни

Да предположим, че имаме таблица със следните данни:

SELECT 
    VendorId,
    ProductName,
    ProductPrice 
FROM Products;

Резултат:

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

Пример

Можем да използваме следната заявка, за да получим средната стойност на всички цени.

SELECT AVG(ProductPrice)
FROM Products;

Резултат:

52.898750

В този случай информацията за цената се съхранява в ProductPrice колона и затова го предадохме като аргумент на AVG() функция, която след това изчислява средната стойност и връща резултата.

Филтрирани резултати

AVG() функцията работи с редовете, върнати от заявката. Така че, ако филтрирате резултатите, резултатът от AVG() ще отрази това.

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

Резултат:

19.680000

В този случай 19,680000 е средната цена на всички продукти, предлагани от посочения доставчик.

DISTINCT Ключова дума

Можете да използвате DISTINCT ключова дума с AVG() за изчисляване само на различни стойности. Тоест, ако има дублиращи се стойности, те се третират като една стойност.

Пример:

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

Резултат:

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

В този случай два артикула споделят една и съща цена (отвертката с лява ръка и дясна отвертка са на цена 25,99). Следователно, AVG() функция, когато се използва с DISTINCT ключова дума, третира и двете стойности като една и съответно изчислява резултата си.

Функции на прозореца

AVG() функцията може да се използва във функциите на прозореца. Вижте SQL AVG() за начинаещи за пример за това.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB низове за формат на дата

  2. Сигнали и известия от SkySQL

  3. Управление на SSL ключове и криптиране на MySQL данни при пренасяне

  4. Как работи операторът BINARY в MariaDB

  5. Как да настроите асинхронна репликация между MariaDB Galera клъстери