wuscheck: Mysql und PHP: Zusammenzählen von GROUP-BY-Zahlen

Hallo,

ich habe eine MySQL-Select mit GROUP BY aufbereitet, dass Ergebnis sieht wie folgt aus:

Rang   Zahl
  1     5
  1     10
  2     3
  2     1
  3     4
  4     3

Ich möchte nun die Zahl bei den Zeilen zusammenfassen, bei denen die Nummer gleich ist also:

Rang   Zahl
1       15
2        4
3        4
4        3

Ich kann die Zahl nicht in den GROUP-BY-Befehl mit aufnehmen weil Zahl bereits ein count(rang) AS zahl ist.

Ich habe auch folgendes versucht, aber das funzt auch nicht:

SELECT land, rang, count(rang) as zahl FROM turniere_rang $where GROUP BY land, rang, count(rang) ORDER BY rang, zahl DESC";
$result2=mysql_query($query2) or die ("Verbindung zur Datenbank konnte nicht hergestellt werden!");
$anzahl2=mysql_numrows($result2);
for ($a=0;$a<$anzahl2;$a++) {
$land=mysql_result($result2, $a, "land");
$rang[$a]=mysql_result($result2, $a, "rang");
$zahl[$a]=mysql_result($result2, $a, "zahl");

if ($a=="0" || $rang[$a]<>$rang[$a-1]):
$rang=$rang[$a];
$zahl=$zahl[$a];
else:
$rang=$rang[$a]+$rang[$a-1];
$zahl=$zahl[$a]+$zahl[$a-1];
endif;

Irgendwelche Ideen?

  1. Hallo

    ich habe eine MySQL-Select mit GROUP BY aufbereitet, dass Ergebnis sieht wie folgt aus:

    Rang   Zahl
      1     5
      1     10
      2     3
      2     1
      3     4
      4     3

    Kannst du mal ein teil der ausgangstabelle zeigen?

    Ich möchte nun die Zahl bei den Zeilen zusammenfassen, bei denen die Nummer gleich ist also:

    Rang   Zahl
    1       15
    2        4
    3        4
    4        3

    Das sieht aber eher danach aus, als müsstest du mit der aggregatsfunktion sum() arbeiten...

    Gruss

    1. Hallo

      ich habe eine MySQL-Select mit GROUP BY aufbereitet, dass Ergebnis sieht wie folgt aus:

      Rang   Zahl
        1     5
        1     10
        2     3
        2     1
        3     4
        4     3

      Kannst du mal ein teil der ausgangstabelle zeigen?

      Ich möchte nun die Zahl bei den Zeilen zusammenfassen, bei denen die Nummer gleich ist also:

      Rang   Zahl
      1       15
      2        4
      3        4
      4        3

      Das sieht aber eher danach aus, als müsstest du mit der aggregatsfunktion sum() arbeiten...

      Gruss

      Die Tabelle sieht Auszugsweise so aus:

      id  turnier  land  rang
      1 1 6 1
      2 1 2 2
      3 1 4 3
      4 1 52 4
      5 1 21 5
      6 1 30 6
      7 1 9 7
      8 1 13 8
      9 3 4 1
      10 3 5 2
      11 3 13 3
      12 3 8 4
      13 3 52 5

      oder aber nach land sortiert so:

      2 1 2 2
      16 3 2 8
      17 2 2 1
      28 5 2 2
      47 6 2 9
      53 7 2 3
      70 8 2 8
      83 9 2 9
      93 10 2 7
      127 12 2 9
      136 13 2 6
      146 14 2 4

      Habe übrigens Deine Frage mit den Dynamischen Selectboxen beantwortet..., hoffe es hilft Dir, auf der Seite gibt's ein paar gute Schnipsel ;-)   Gruss Patrick

      1. Hallo Patrick

        Habe übrigens Deine Frage mit den Dynamischen Selectboxen beantwortet..., hoffe es hilft Dir, auf der Seite gibt's ein paar gute Schnipsel ;-)   Gruss Patrick

        Besten Dank für deine hilfe! das ist genau das was ich gesucht habe! Ich bin noch an deinem problem dran. würde dir sonst per mail mitteilen, falls ich was rausgefunden habe...

        Gruss, Marc

        An alle anderen: bitte mithelfen! :-)