Sum() ohne GroupBy

Angins

Mitglied
Hallo zusammen,

Habe noch eine Frage, auf die ich nirgends eine Antwort fand.
Ich möchte gerne mit sum() Zahlen von einer Spalten zusammenrechnen und danach diese in einer neuen Spalte ausgeben. Dazu muss ich ja aber das GroupBy verwenden, so dass mir am Schluss nur noch eine Spalte ausgegeben wird.
Ich möchte aber das weiterhin alle Zeilen angezeigt werden, und in der Spalte mit dem Total halt einfach in jeder Zelle daselbe Ergebnis steht.
Ist das überhaupt irgendwie möglich?

Untenstehend habe ich ein Beispiel angefügt


Vielen Dank für die Hilfe im Voraus,
Gruss - Angins
 

Anhänge

  • tabelle.gif
    tabelle.gif
    2,2 KB · Aufrufe: 13
Hmm aber dann zählt es mir die Summe ja gar nicht zusammen, dann siehts bei mir wie folgt aus:
 

Anhänge

  • tabelle.gif
    tabelle.gif
    2,2 KB · Aufrufe: 9
Hi,

meinst du sowas?

PHP:
SELECT
  bkp,
  Zahlen,
  (SELECT SUM(Zahlen) from Test) AS Total
FROM
  Test
GROUP BY
  bkp
 
Jaa genau :-D
bzw. das Group by musste ich weglassen, das es so rauskam wie ich wollte...

Vielen,vielen Dank!

Gruss
Angins
 
Auch wenn du dein gewünschtes Ergebnis schon hast und auch kein Oracle verwendest.. hier zur Vollständigkeit noch eine andere Methode.

SQL:
  select id,
         zahlen,
         sum ( zahlen )
        over( order by id rows between unbounded preceding and unbounded following )
        as summe
  from   zahlen
  order  by id;

             ID          ZAHLEN           SUMME
--------------- --------------- ---------------
              1              20              50
              2              15              50
              3               5              50
              4               0              50
              7              10              50

5 Zeilen ausgewählt.
Der Vorteil der analytischen Funktion im Vergleich zum obigen Subselect ist schlichtweg die Performance. Mit einem SELECT innerhalb der Spaltenliste ist die Wahrscheinlichkeit hoch, dass für jede zurückgelieferte Zeile das SUM( ) ausgeführt wird. Das würde bedeuten, dass die Datenbank für jede Zeile einmal die komplette Tabelle liest und die Summe berechnet.
 
Zuletzt bearbeitet von einem Moderator:
Zurück