SQL Abfrage ohne Aggregatfunktion?
Hi , ich habe eine SQL Aufgabe bei der ich nicht weiter komme.
Ich habe eine Tabelle: PREIS mit der Spalte: PREISE , ich muss den größten preis aus der Tabelle geben ohne eine Aggregatfunktion zu nutzen.
Abfrage mit Aggregatfunktion:
SELECT MAX(preise) FROM preis ;
Wie kann ich das ohne die Funktion MAX() darstellen ?
Danke
3 Antworten
![](https://images.gutefrage.net/media/user/ohwehohach/1484229011333_nmmslarge__192_3_203_203_916b80d33227bc2c78789585f46b3253.jpg?v=1484229011000)
Kommt ein bisschen auf den SQL-Dialekt an. In T-SQL beispielsweise mit
SELECT TOP 1 preise FROM preis ORDER BY preise DESC
In MySQL beispielsweise mit
SELECT preise FROM preis ORDER BY preise DESC LIMIT 1
Generell muss das Statement:
- Die Liste aller Preise absteigend sortieren
- Das erste Element der Liste liefern (weil es dann das größte Element ist).
Anmerkung: Deine Tabelle und Deine Spalte sind echt blöd benannt. Die Tabelle sollte "Preise" heißen und die Spalte sollte "Preis" heißen. Dann wird ein Schuh draus.
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Vielleicht abfragen, ob ein preis größer ist als ein anderer und wenn ein anderer größer ist, gleichst den anderen mit dem Rest ab. wäre allerdings nicht sonderlich effizient imo
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
kenne mich mit sql nicht spezifisch aus, kenne sonst keine funktion dafür
![](https://images.gutefrage.net/media/user/Brohler/1610645126848_nmmslarge__211_0_528_528_24a7d2123e1e8782c9e10dd5603bd800.jpg?v=1610645127000)
Einfach mal selber googlen
Und nicht sonderlich "SQL".