Hallo,
ich habe ein Problem mit einer MySQL-Abfrage. Es geht um eine Datenbank mit „Kampfberichten“ aus einem Browsergame zu der ich ein paar Statistiken erstellen möchte.
Dazu möchte ich folgene Abfrage durchführen:
SELECT * FROM
(SELECT zielinhaber_allianz
AS opfer, SUM(verteidiger_boni_verlust_mp ) AS mp_verlust_summe
, count( pilot_name ) AS anz, sum( verteidiger_boni_verlust_mp ) / count( pilot_name ) AS durchschnitt
FROM kb_liste
WHERE pilot_allianz
LIKE ‚xXx‘
AND angreifer_gewinnt
=1
GROUP BY opfer
UNION
SELECT pilot_allianz
AS opfer, SUM( angreifer_verlust_mp ) AS mp_verlust_summe
, count( pilot_name ) AS anz, sum( angreifer_verlust_mp ) / count( pilot_name ) AS durchschnitt
FROM kb_liste
WHERE zielinhaber_allianz
LIKE ‚xXx‘
AND angreifer_gewinnt
=0
GROUP BY opfer ) as tmp
GROUP BY opfer
ORDER BY mp_verlust_summe DESC
Es sind im Grunde zwei Abfragen die ich durch ein Union verbunden habe und auf das Ergebnis das ich erhalte, würde ich gerne eine Gruppierung anwenden. Jede Abfrage einzeln funktioniert richtig, beide Abfragen zusammen auch (SELECT * FROM tmp). Das Problem tritt erst dann auf, wenn ich die GROUP BY-Klausel auf die temporäre Tabelle anwende.
Frage: Kann ich auf eine solche temporäre Tabelle kein GROUP BY anwenden?
Ich freue mich über alle hilfreichen Antworten und wünsche euch allen ein frohes Fest
Gruß,
Kez