Warum hat die max-Funktion in sql mehrere Werte zurückgeben
Ich würde gerne die Anzeige der Spieler mit dem höchsten Gehalt.
select max(Salary) as highest_salary, p.[Last name]
from tbl_PlayersTable as p, tbl_team as t
where p.Team = t.TeamID
and TeamID = 1000
Group by p.[Last name]
Ausgabe:
highest_salary Last Name
8000 Bosh
7000 Wade
6000 James
Ich will nur zeigen (8000 Bosh da ist er der Spieler mit dem höchsten Gehalt).
- SQL server 2005
- Was ist Ihr output?
- Warum sind Sie die Gruppierung von Nachname?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast nicht brauchen
MAX
nochGROUP BY
, verwenden Sie einfachTOP 1
mitORDER BY Salary DESC
. So etwas wie dieses:Sind Sie die Gruppierung der Werte (siehe Group By am Ende) und so Ihre Funktion max berechnet den Max-Wert pro Gruppe. Wenn Sie den Zauberstab ein absolutes max-Wert, entfernen Sie die Gruppierung.
Keine Notwendigkeit für
group by
oder sogarmax
:Weil Sie
group by p.[Last name]
so, dass die Abfrage bekommenmax(Salary)
für jeden einzelnenLast name
es gefunden. Also, wenn Sie wollen, um diemax(Salary)
Basis auf alleLast name
müssen Sie entfernengroup by
sub query
und wickeln Sie es durchselect max(Salary) as highest_salary, p.[Last name] from
Werden Sie brauchen, um die top-1-Wert