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

Как да филтрираме записи с агрегатна функция AVG

Проблем:

Искате да намерите групи от редове, в които средната стойност на стойностите в колона е по-висока или по-ниска от дадена стойност.

Пример:

Нашата база данни има таблица с име product с данни в следните колони:id , name , grocery и price .

id име хранителни стоки цена
1 мляко Зелен магазин 2,34
2 хляб Хранителни стоки на Кларк 3,56
3 хляб Супер пазар 4.15
4 мляко Супер пазар 1,80
5 хляб Хранителни стоки Аманда 2.26
6 мляко Виолетови хранителни стоки 3,45
7 мляко Хранителни стоки на Кларк 2.10
8 хляб Виолетови хранителни стоки 2,55
9 мляко Хранителни стоки Аманда 1,95

Нека намерим имената на продуктите, при които средната цена на всеки продукт сред хранителните стоки е по-висока от 3,00.

Решение:

SELECT name, AVG(price)
FROM product
GROUP BY name
HAVING AVG(price)>3.00;

Ето резултата:

name ср.
хляб 3.13

Дискусия:

За да филтрирате записи с помощта на агрегатната функция, използвайте клаузата HAVING.

Тук изчисляваме общата стойност:средната цена на всеки продукт. Един се продава от повече от един бакалин; следователно средната цена се изчислява за всеки (в нашия пример, SELECT name, AVG(price) ). Освен агрегатната функция, ние също използваме името на колоната в SELECT, така че трябва да използваме GROUP BY с това име на колона (GROUP BY name ).

Последната стъпка е използването на агрегатната функция в клаузата HAVING. Не забравяйте, че HAVING трябва да се постави след клаузата GROUP BY. Той съдържа условието, което сравнява стойността, върната от агрегатната функция, с дадена стойност. По-горе това е средната цена на продукта със стойност 3,00 (HAVING AVG(price)>3.00 ). В тази заявка проверяваме дали средната цена на всеки продукт във всички хранителни стоки е по-висока от три. Заявката показва само един продукт, хляб, със средна цена, по-висока от три.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавя дни към дата в T-SQL

  2. Управление на роли и статуси в система

  3. Защото трябва да познавате PowerShell

  4. SQL заявка за сравняване на продажбите на продукти по месеци

  5. Въведение в статистиката за чакане