Wie bekomme ich mit SQL nur eine Zeile wo der Wert einer Spalte der Maximale ist?
Beispiel: Tabelle UrlauReis enthält wer Welche Reise macht. Mit einer Subquery konnte ich schon Zählen wer welche Reise wie oft macht. Jetzt möchte ich den Urlauber mit den Meisten reisen ausgeben. Meine subquery enthält die Felder ReisenAnz und Urlauber
Es steht also da:
Urlauber 1 ReisenAnz 4
Urlauber 2 ReisenAnz 5
Urlauber 3 ReisenAnz 2
Mit SELECT MAX(sub.ReisenAnz) kann ich auch nur 5 zurück geben lassen aber ich bekomme es nicht hin den zugehörigen Urlauber auszugeben wie mache ich das
2 Antworten
SELECT * FROM UrlauReis ORDER BY ReisenAnz DESC LIMIT 1
Damit hast Du den Datensatz des Urlaubers mit den meisten Reisen. Aber: Wenn es einen zweiten mit derselben maximalen Anzahl an Reisen gibt wird der dann nicht mehr gefunden. Dazu braucht es dann eine weitere Abfrage.
Leider sagst du nicht welche SQL Version (mysql, mssql, postgresql, etc.) benutzt. Daher mag die Syntax leicht varrieren, unten die mssql Variante.
Select Top 1 sub.Urlauber
from sub
order by sub.ReisenAnz desc