/* Durchschnittspreis der einzelnen Waren */ SELECT w_id, AVG(l_preis) FROM liefert GROUP BY w_id ; /* Durchschnittspreis aller Waren mit einer w_id kleiner < 100, die billiger als 1000 Euro sind und für die mindestens zwei verschiedene Preise (< 1000 Euro) existieren. Achtung: l_preis < 1000 darf nur in der Where-Klausel stehen count (DISTINCT l_preis) >= 2 darf nur in der Having-Klausel stehen w_id < 100 darf in beiden Klauseln stehen (es reicht, sie in eine zu schreiben) */ SELECT w_id, AVG(l_preis) AS durchschnittspreis FROM liefert WHERE l_preis < 1000 AND w_id < 100 GROUP BY w_id HAVING COUNT(DISTINCT l_preis) >= 2 AND w_id < 100 ; SELECT w_id, ROUND(AVG(l_preis),2) AS durchschnittspreis FROM liefert WHERE l_preis < 1000 AND w_id < 100 GROUP BY w_id HAVING COUNT(DISTINCT l_preis) >= 2 AND w_id < 100 ;