Laufende Summe von gruppierten Datensätze in der Tabelle
Ich habe eine Tabelle wie diese (Oracle 10)
Account Bookdate Amount
1 20080101 100
1 20080102 101
2 20080102 200
1 20080103 -200
...
Was ich brauche, ist die neue Tabelle gruppiert nach Konto um Konto von asc und Bookdate asc mit einem laufende Summe-Feld, wie folgt:
Account Bookdate Amount Running_total
1 20080101 100 100
1 20080102 101 201
1 20080103 -200 1
2 20080102 200 200
...
Gibt es eine einfache Möglichkeit, es zu tun?
Vielen Dank im Voraus.
Warum gehst du nicht zu bieten create table-Skripts? Das macht es viel einfacher, Ihre Frage zu beantworten.
Wie diese sind alle pseudo-Tabellen, lassen Sie uns davon ausgehen, dass Sie sehr einfache create table-Skripts, aber wenn es wirklich sein muss, kann ich generieren Sie aus den oben genannten Daten...
Wie diese sind alle pseudo-Tabellen, lassen Sie uns davon ausgehen, dass Sie sehr einfache create table-Skripts, aber wenn es wirklich sein muss, kann ich generieren Sie aus den oben genannten Daten...
InformationsquelleAutor Zsolt Botykai | 2009-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun Sie wirklich brauchen, die zusätzliche Tabelle?
Können Sie bekommen, dass die Daten, die Sie benötigen, mit einer einfachen Abfrage, die kann man natürlich erstellen, die als anzeigen, wenn Sie möchten, es zu erscheinen wie eine Tabelle.
Diese erhalten Sie Daten, die Sie suchen:
Dadurch wird eine Ansicht erstellt, um zu zeigen Sie die Daten, als ob es eine Tabelle:
Wenn Sie wirklich brauchen, die Tabelle, meinst du, dass Sie es brauchen ständig aktualisiert? oder nur einmalig? Natürlich, wenn es ein one off, können Sie einfach "create table as select" mithilfe der obigen Abfrage.
Test-Daten, die ich verwendet ist:
edit:
vergaß hinzuzufügen; Sie angegeben, dass Sie wollten, dass die Tabelle sortiert werden - das macht nicht wirklich Sinn, und lässt mich denken, dass Sie wirklich meinen, dass Sie wollten, dass die query/view - Bestellung wird ein Ergebnis der Abfrage, die Sie ausführen, nicht etwas, das inherant in der Tabelle (ohne Berücksichtigung der Index-Organisierten Tabellen und dergleichen).
InformationsquelleAutor William
Beginnen werde ich mit diesem sehr wichtigen caveate: erstellen Sie eine Tabelle zur Speicherung dieser Daten. Wenn Sie tun, werden Sie feststellen, dass Sie brauchen, um es aufrecht zu erhalten, der sich in einen nie endenden Kopfschmerzen. Schreiben Sie eine Ansicht zurück, die extra-Spalte, wenn Sie das tun wollen. Wenn Sie die Arbeit mit einem data warehouse dann vielleicht würden Sie so etwas tun, aber selbst dann irren auf der Seite der Ansicht, es sei denn, Sie kann einfach nicht die performance, die Sie benötigen, mit Indizes,anständige hardware, etc.
Hier ist eine Abfrage, die Zeilen zurückzugeben, die die Art und Weise, die Sie Sie benötigen.
Andere mögliche Lösung ist:
Testen Sie beide für die Leistung und sehen, welche besser für Sie arbeitet. Auch habe ich nicht gründlich getestet Sie über das Beispiel, das Sie Gaben, so sicher sein, zu testen, einige Grenzfälle.
Ich brauche die Tabelle für backup-Zwecke. Vielen Dank für deine Antwort, ich werde es morgen testen. – Zsolt
InformationsquelleAutor Tom H
Nutzen-Analysen, so wie in deiner letzten Frage:
Ausgabe:
Hallo, ist dieser code kann verwendet werden, in Mysql?
Ich glaube, dass MySQL nicht unterstützt analytics. Ich bin mir nicht sicher. Ich weiß nicht, wie man eine laufende Summe in MySQL.
InformationsquelleAutor tuinstoel