WÄHLEN Sie SUMME als Feld
Nehme an, dass ich diese Tabelle
Tabelle (a,b,c,d). Datentypen sind nicht wichtig.
Dass ich dies tun wollen
select a as a1,b as b1,c as c1,
(select sum(d) from table where a=a1 and b=b1) as total
from table
group by a,b,c
...aber ich kann nicht einen Weg finden (sqldeveloper hält Klagen mit "from-Klausel nicht gefunden".)
Gibt es eine Möglichkeit? Ist es möglich?
Danke Jungs. Ich bekam viel mehr als ich suchte, und weiß, ich werde darüber Lesen, PARTITION und ÜBER. Dies ist, was ich mag über SO.
das ist "jetzt werde ich Lesen..."
das ist "jetzt werde ich Lesen..."
InformationsquelleAutor Tom | 2009-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist viel mehr einfach und effizient neu zu schreiben als dies:
Hinweis: die
SUM(SUM(d))
hier.Den innersten
SUM
ist die Aggregat-Funktion. Es berechnet dieSUM(d)
a-b-c
-Weise.Den äußersten
SUM
ist die analytische Funktion. Es Summen die vorberechnetenSUM(d)
'sa-b
-Weise, und gibt den Wert zusammen mit jeder Zeile.Auch mo ist nicht definiert in der ersten Antwort.
behoben, danke. Beide Abfragen auf SQL Server 2005 (glaube ich)
InformationsquelleAutor Quassnoi
Du meinst du so etwas?
Nein. Die OVER-Klausel in Verbindung mit PARTITION teilt das Ergebnis in mehrere Partitionen und dann wendet die Aggregatfunktion auf diese Partitionen. Für weitere Informationen Lesen Sie bitte msdn.microsoft.com/en-us/library/ms189461.aspx.
Sie brauchen eine
SUM(SUM(d))
hier.Huh, SumSum(d))? Warum? Ist das Oracle-spezifischen oder so etwas? SQL-Server meldet einen Fehler, wenn ich es versuchen...?
Ah, fergot es, sorry, natürlich brauche ich die Summe(Sum(d)), denn ich bin bereits Gruppierung. Vergessen, das Teil auf meinem test-Abfrage. Ich werde mein edit beantworten.
InformationsquelleAutor Maximilian Mayerl
können Sie Aliase:
InformationsquelleAutor Vincent Malgrat