SQL MAX Aggregatfunktion. WIe Ausgabe des Spaltenname zusätzlich?
Hallo, nehmen wir an ich hätte ganz simpel die Tabelle Buch mit 2 Spalten. Erste Spalte Name des Buches, zweite Spalte Preis des Buches
Über die Aggregatfunktion MAX (PREIS) FROM Tabelle Buch;
weiß ich dass mir so das teuerste Buch ausgegeben wird. Allerdings taucht dann nicht der Name des teuersten Buches mit auf, sondern lediglich der höchste Preis. Wie bekomme ich dies hin ?
2 Antworten
Ich würde so etwas machen wie
SELECT * FROM Tabelle_Buch WHERE PREIS in(SELECT MAX(PREIS) FROM Tabelle_Buch)
Du gibst die Spalte Name mit aus.
Also SELECT name, max(preis) FROM Tabelle Buch ;)
Allerdings würde ich es wahrscheinlich über eine HAVING-Klausel lösen. Sprich:
SELECT name, preis
FROM Tabelle BUCH
GROUP BY name, preis
HAVING count(*) = (SELECT max(preis) FROM Tabelle Buch)
weil du dann auch besser einschränken könntest, welche Art von Buch du zum Beispiel möchtest.