Gemäß der Fehler, die Verwendung eines Aggregats wie Max
erfordert eine Group By
-Klausel, wenn in der Auswahlliste nicht aggregierte Spalten vorhanden sind (In Ihrem c ase, Sie versuchen, MAX(Num)
zu finden und geben dann die Werte zurück, die in der Spalte ID
zugeordnet sind). In MS SQL Server können Sie bekommen, was Sie über Bestell wollen und die Begrenzung der zurückgegebenen Zeilen:
SELECT TOP 1 ID, NUM
FROM [table]
ORDER BY NUM DESC;
In anderen RDBMS-Systeme die LIMIT
bietet eine ähnliche Funktionalität.
bearbeiten
Wenn Sie alle Zeilen zurückgeben, die die gleiche maximale haben, dann verwenden Sie die WITH TIES
qualification:
SELECT TOP 1 WITH TIES ID, NUM
FROM [table]
ORDER BY NUM DESC;
Was willst du maximal? 'ID' oder' NUM'? – JHS
Ich möchte den MAX von Num, aber ich möchte auch die ID kennen. –
Beispiel könnte besser sein, wenn Sie 5, 10 hacken und 2, 9 wie erwartet Ergebnis haben. Was passiert, wenn zwei Zeilen einen MAX (num) teilen? – Glenn