SQL Abfrage Durchschnitt?

1 Antwort

wenn du nach artikel gruppieren einen druchschnitt willst, weil es mehere artikel mit der gleichen bezeichnung / id gibt , musst du halt vorher gruppieren , dann den average bilden

SELECT ProductID, ProductName, AVG(Price), Price, (AVG(Price)-Price) as Differenz
 FROM Products 
 GROUP BY ProductID 
 ORDER BY Price ASC

oder ProductName oder was auch immer da mehrfach vorkommt .

Leider sehen wir hier nicht die Tabelle und die Werte .

Ratsuchender06 
Fragesteller
 22.10.2022, 14:20

Es geht um die Tabelle "Products" aus der Datenbank auf https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all

Durch "Group by" werden mir jetzt tatsächlich mehr Zeilen angezeigt, allerdings nicht mit den Daten die ich haben möchte:

Gefragt ist quasi die Ausgabe von:

Produkt ID - Produkt Name - Einzelpreis für jedes Produkt - AVG Preis aller Produkte - Differenz der einzelnen Produktpreise zum Durchschnittspreis aller Produkte für jedes Produkt - aufsteigend nach Preis sortiert

gelöst hat das mein Problem leider noch nicht.

0
TechPech1984  22.10.2022, 14:38
@Ratsuchender06
SELECT ProductID , (
   SELECT AVG(Price) FROM Products 
   ) as Average , Price , (Average - Price) as Differ 
  FROM Products;

Ein Aggregat brauch immer ein Group By , somit musst du ein Subselect nehmen . Du kannst keine Einzelnen Werte mit Gesamtwerten mischen , ging mal früher bei MySQL , heute aber auch da nicht mehr .

0