Zeilen zusammenfügen und zählen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zeilen zusammenfügen und zählen

    Hallo zusammen,

    ich versuche schon seit Stunden einen SQL String zu erstellen.
    Leider klappt es nicht so wie ich es mir vorstelle.
    Evtl habt Ihr ja eine Idee.

    Ich habe eine Tabelle:

    WertStatus
    22Gut
    22Gut
    55Schlecht
    88Gut
    22Gut
    66Gut
    88Schlecht
    22Schlecht
    22Schlecht


    Nun möchte ich jeden mehrfachen "Status" und "Wert" zusammenfügen und Zählen.
    Das Ergebnis sollte dann in etwa so ausschauen:

    WertStatusAnzahl
    22Gut3
    55Schlecht1
    88Gut1
    66Gut1
    88Schlecht1
    22Schlecht2


    Habe es schon mal mit einer "DISTINCT", "COUNT" und "GROUP" Kombi versucht.
    Leider ohne Erfolg.

    Kann mir da jemand weiter helfen?

    Gruß
    Linni
  • Hey, du benötigst count und group by.

    SQL-Abfrage

    1. $result=$db->query("SELECT status, SUM(wert), COUNT(status) FROM test GROUP BY status;");


    stdClass Object ( [status] => gut [SUM(wert)] => 110 [COUNT(status)] => 5 ) stdClass Object ( [status] => schlecht [SUM(wert)] => 280 [COUNT(status)] => 5 )


    DISTINCT macht hier keinen sinn, da du die anderen "gut" und "schlecht" nicht weg filtern willst. du willst es ja nur gruppieren.
  • Hallo Snowflake,

    viele Dank für die Hilfe.
    Du hast natürlich recht. DISTINCT macht hier wirklich keinen Sinn.

    Dein Beispiel kommt dem Ergebnis schon sehr nahe.

    Nun möchte ja aber nicht die gesamt Anzahl aller "Status" Einträge haben, sondern extra für jeden Wert.


    Mein nächster Versuch hätte fast geklappt:


    Quellcode

    1. $result=$db->query("SELECT status, wert, COUNT(status) AS anzahl FROM test GROUP BY status;");
    Jetzt macht er aber keinen unterschied beim zählen zwischen gut und schlecht :/