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
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.
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
kenne mich mit sql nicht spezifisch aus, kenne sonst keine funktion dafür
Einfach mal selber googlen
Und nicht sonderlich "SQL".