Fabienne: MySQL: SUM der jeweils besten 3

Beitrag lesen

Hi again,

vielen Dank für Deine Antwort. Dann lag ich mit meinem Problem ja gar nicht so falsch, dass das ziemlich "tricky" ist.

Idee: Das ist das "Endergebnis" (Summe):

SELECT SUM(einzelergebnis) AS gesamtergebnis 
FROM table GROUP BY sportler_id
ORDER BY gesamtergebnis DESC

Nun ist ja der Inhalt der "table" eigentlich eine Teilmenge, sprich ein Subselect. "Hole alle Daten aus der table a, wobei nur diejenigen ergebnis-Datensätze genommen werden sollen, welche die gleiche Sportler_id haben, sortiert nach einzelergebnise und nur die ersten 3:

SELECT * FROM  table a WHERE ergebnis_id=(SELECT b.einzelergebnis_id FROM table b WHERE b.sportler_id=a.sportler_id ORDER BY b.einzeleregbnise DESC LIMIT 0,3)`

Und das wiederum eingepackt in den ersten SUM-Query:

SELECT SUM(c.einzelergebnis) AS gesamtergebnis 
FROM (SELECT * FROM  table a WHERE ergebnis_id=(SELECT b.einzelergebnis_id FROM table b WHERE b.sportler_id=a.sportler_id ORDER BY b.einzeleregbnise DESC LIMIT 0,3)
)c GROUP BY c.sportler_id
ORDER BY gesamtergebnis DESC

Oder wäre sogar ein JOIN richtiger, mit dem ich jeweils die 3 ersten Datensätze an den "ersten Datensatz" anhänge und dann via GROUP die richtige Summe ziehen kann?

Ist sowas denkbar?

Beste Dank Fabienne