SQL größten und zweitgrößten wert innerhalb der Gruppe ermitteln

agebee

Newbie
Registriert
Apr. 2020
Beiträge
2
Hallo zusammen,
vermutlich ein banales Problem, aber ich hab wohl ne Denkblockade oder denke zu kompliziert.

Folgendes Problem:
An unserem Vereinsabend bekommen nur die 2 (von 4) erfolgreichsten Teams Wertungspunkte für die Teamwertung.
So sieht ein Spieltagsergebnis (Beispiel für Spieltag 1 und 2) aus:

Spieltag,teamnr, Durchschnitt
1, 2, 15,00
1, 3, 2,00
1, 4, -1,00
1, 1, -16,00

2, 4, 6,70
2, 3, 4,80
2, 1, -5,2
3, 2, -6,3

Wie muss ich meinen Select-Befehl aufbauen, damit ich nur die beiden obersten Datensätze pro Spieltag bekomme?
Also es wird nach "Spieltag" gruppiert und innerhalb der Gruppe absteigend nach "Durchschnitt" sortiert Soweit bin ich schon. Aber wie bekomme ich nun die 2 Datensätze mit den beiden Topdurchschnittswerten?
Kann mir mal jemand auf die Sprünge helfen?
 
also Top und Limit funktionieren doch nicht mit Group oder?
Ich will ja pro Spieltag die jeweils 2 höchsten Werte haben.

Wie müsste denn der subselect aussehen?
 
Schau dir mal die ranking Funktionen an (window). Dann reicht where ... <= 2.
 
Zurück
Oben