MAX-Funktion ohne group by
Ich habe die folgende Tabelle:
ID | NUM
1 | 4
2 | 9
3 | 1
4 | 7
5 | 10
Will ich ein Ergebnis von:
ID | NUM
5 | 10
Wenn ich versuche, mit MAX(NUM) ich bekommen und Fehler, dass ich zu der GRUPPE DURCH, um die MAX-Funktion
Irgendeine Idee?
- Was willst du max?
ID
oderNUM
? - Ich will das MAX von Num -, aber ich möchte auch wissen, die ID.
- Beispielsweise könnte besser sein, wenn man abhacken 5, 10 und 2, 9 als Ergebnis erwartet. Auch, was passiert, wenn zwei Zeilen teilen MAX(num)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro den Fehler, die Verwendung eines Aggregats wie
Max
erfordert eineGroup By
- Klausel, wenn es nicht aggregierte Spalten in der select-Liste (In deinem Fall versuchen Sie zu finden, dieMAX(Num)
und dann den Rückgabewert(s) verbunden, die in derID
Spalte). Im MS SQL Server-können Sie bekommen, was Sie wollen über die Bestellung und die Begrenzung der zurückgegebenen Zeilen:In anderen RDBMS-Systeme der
LIMIT
bietet eine ähnliche Funktionalität.Bearbeiten
Wenn Sie brauchen, um alle Zeilen haben die gleiche maximale, dann verwenden Sie die
Krawatte
Qualifikation:Versuchen, diese Abfrage.
wird es wieder max-Werte, auch wenn es mehr MAX-Werte wie:
konsultieren Sie bitte die folgenden link, um mehr wissen über die RANKING-Funktionen:
http://msdn.microsoft.com/en-us/library/ms189798
Kann wieder mehr als 1 Ergebnis:
Wie etwa:
Tun -
LIMIT
?Bekommen alle Zeilen haben max Werte, aber ES gibt 3 WÄHLEN Sie, Es ist nicht gut für die performance
LIMIT