Ankündigung

Einklappen
Keine Ankündigung bisher.

Zusammenrechnen von Werten einer Spalte

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zusammenrechnen von Werten einer Spalte

    Hallo,

    ich hab eine SQL Datenbank, die mir folgenden Output liefert:

    Code:
    MariaDB [dpi]> SELECT * FROM top_devices WHERE result_set = 82;
    +----+-----------+----------------+------------+------------+
    | id | device_id | bandwith | timestamp | result_set |
    +----+-----------+----------------+------------+------------+
    | 46 | 155019 | 22821810922938 | 1504167735 | 82 |
    | 47 | 94232 | 31217529547583 | 1504167735 | 82 |
    | 48 | 94237 | 34605527414892 | 1504167735 | 82 |
    | 49 | 94235 | 36863214229531 | 1504167735 | 82 |
    | 50 | 94233 | 48441966824330 | 1504167735 | 82 |
    | 51 | 155019 | 22821810922938 | 1504252809 | 82 |
    | 52 | 94232 | 31217529547583 | 1504252809 | 82 |
    | 53 | 94237 | 34605527414892 | 1504252809 | 82 |
    | 54 | 94235 | 36863214229531 | 1504252809 | 82 |
    | 55 | 94233 | 48441966824330 | 1504252809 | 82 |
    +----+-----------+----------------+------------+------------+
    Wie man nun sieht tauchen die device_ids zwei mal auf. Das soll auch so sein. Nun möchte ich aber gerne die Werte bei bandwith addieren. Also praktisch GROUP BY device_id. Nur das halte alle Werte der jeweiligen device_id zusammenaddiert werden.
    Leider bin ich bisher nicht wirklich schlau aus den Google Suchergebnissen geworden.

    Hat vielleicht einer von euch eine Idee?

    Vielen Lieben Dank für eure Hilfe

  • #2
    Nur das halte alle Werte der jeweiligen device_id zusammenaddiert werden.
    Das macht doch eh SUM(). Nur SELECT * ist halt Mist, weil es die Regeln von Gruppierungen verletzt.

    Code:
    SELECT
      device_id,
      SUM (bandwith) AS summe
    
    WHERE
      result_set = 82
    
    GROUP BY
      device_id
    ?

    Und bitte Code Tags nutzen. Danke!
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Sorry, total verpeilt mit den Tags. Danke

      Kommentar


      • #4
        hausl Das * hab ich ja nur verwendet um einen Output der gesamten Tabelle zu bekommen Der Server besitzt leider kein Webinterface und ist nur per ssh zu erreichen. Oder halt mysql.
        Im Code mache ich das natürlich nicht.

        Aber ich hab jetzt das Problem, dass ich beim Befehl
        PHP-Code:
             $sql "SELECT
                             SUM(t.bandwith) AS bandwith,
                             d.nt_name
                     FROM top_devices AS t
                     INNER JOIN devices AS d
                     ON t.device_id =  d.id
                      WHERE t.result_set = ?
                     ORDER BY t.id DESC"
        ;
             
        $stmt $mysqli->prepare($sql);
             
        $stmt->bind_param("i"$rs);
             
        $stmt->execute();
             
        $result $stmt->get_result(); 
        Nur einen einzigen Output bekomme. SQL ist leider überhaupt nicht meins. Hast du vielleicht noch einen Tipp für mich, wo der Fehler liegt?^^ Danke

        Kommentar


        • #5
          GROUP BY fehlt noch.
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            hausl Habs eben gerade auch gemerkt und schon geändert. Jetzt klappt es xD Vielen Dank dennoch. Wünsche dir noch einen tollen Abend

            Kommentar


            • #7
              PHP-Code:
              $sql "

              SELECT
                d.nt_name,
                SUM(t.bandwith) AS bandwith

              FROM
                top_devices t

              INNER JOIN
                devices d ON t.device_id = d.id

              WHERE
                t.result_set = ?

              GROUP BY
                d.nt_name

              ORDER BY
                t.id DESC

              "

              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar

              Lädt...
              X