Database
 sql >> Baza danych >  >> RDS >> Database

Jak filtrować rekordy za pomocą funkcji agregacji AVG

Problem:

Chcesz znaleźć grupy wierszy, w których średnia wartości w kolumnie jest wyższa lub niższa od podanej wartości.

Przykład:

Nasza baza danych zawiera tabelę o nazwie product z danymi w następujących kolumnach:id , name , grocery i price .

id imię spożywczy cena
1 mleko Zielony Sklep 2,34
2 chleb Sklep spożywczy Clarka 3,56
3 chleb Supermarket 4,15
4 mleko Supermarket 1,80
5 chleb Sklep spożywczy Amanda 2.26
6 mleko Fioletowy sklep spożywczy 3,45
7 mleko Sklep spożywczy Clarka 2.10
8 chleb Fioletowy sklep spożywczy 2,55
9 mleko Sklep spożywczy Amanda 1,95

Znajdźmy nazwy produktów, w których średnia cena każdego produktu wśród artykułów spożywczych jest wyższa niż 3,00.

Rozwiązanie:

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

Oto wynik:

nazwa średnia
chleb 3,13

Dyskusja:

Aby filtrować rekordy za pomocą funkcji agregującej, użyj klauzuli HAVING.

Tutaj obliczamy łączną wartość:średnią cenę każdego produktu. Jeden jest sprzedawany przez więcej niż jednego sklepu spożywczego; dlatego dla każdego obliczana jest średnia cena (w naszym przykładzie SELECT name, AVG(price) ). Oprócz funkcji agregującej używamy również nazwy kolumny w SELECT, więc powinniśmy użyć GROUP BY z tą nazwą kolumny (GROUP BY name ).

Ostatnim krokiem jest użycie funkcji agregującej w klauzuli HAVING. Pamiętaj, że HAVING należy umieścić po klauzuli GROUP BY. Zawiera warunek porównujący wartość zwracaną przez funkcję agregującą z podaną wartością. Powyżej jest to średnia cena produktu o wartości 3,00 (HAVING AVG(price)>3.00 ). W tym zapytaniu sprawdzamy, czy średnia cena każdego produktu we wszystkich artykułach spożywczych jest wyższa niż trzy. Zapytanie wyświetliło tylko jeden produkt, chleb, o średniej cenie wyższej niż trzy.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień opcję Big Table w rozwiązaniu RDS, aby uzyskać pełny błąd tabeli

  2. Schemat gwiazdy kontra schemat płatka śniegu

  3. Używanie folderu roboczego do bazy danych kontroli źródła

  4. Jak uruchamiają się plany równoległe – część 3

  5. Salesforce SOQL z Windows PowerShell