SQL Befehl um Werte aus einer Zeile zu Summieren
paradoxon
- datenbank
Mein Poblem ist folgendes:
Ich sollte alle doppelten und mehrfach vorkommenden Texte gruppieren sowie die Größe der Texte und die Ersparnis ausrechen. Hat alles gut geklappt habe dafür eine Neue Spalte angelegt und alles war ok, nur jetzt muss ich noch die ersparnis GESAMT abfragen heißt die angelegt Spalte einmal Summieren. Habe es mit Unterabfragen versucht geht leider nicht...
select TEXT,count(TEXT) As Anzahl, BIT_LENGTH (Text)/8 as Grösse_Byte, Count(TEXT) * BIT_LENGTH(TEXT)/8 - 1* BIT_LENGTH(TEXT)/8 as Ersparnis_Byte,
Count(TEXT) * BIT_LENGTH(TEXT)/8 as Gesamt
from DB
group by Text
having count(*) > 1;
TEXT Anzahl GRÖSSE_BYTE ERSPARNIS_BYTE GESAMT
ABCD 594 8 4744 4752
1234 191 36 6840 687
Spalte Ersparnis_Byte soll zusammengerechnet werden und zu wissen wie viel Ersparnis man im Endefekt hat.
Spalte Ersparnis_Byte soll zusammengerechnet werden und zu wissen wie viel Ersparnis man im Endefekt hat.
Letztlich verstehe ich dein Problem so, dass du eine Spalte hast, in der du die Werte der Ersparnis hast/ Datensatz.
Diese möchtest du nun summiert haben.
Wie wäre es mit einem sum(ERSPARNIS_BYTE) ?
Spalte Ersparnis_Byte soll zusammengerechnet werden und zu wissen wie viel Ersparnis man im Endefekt hat.
Letztlich verstehe ich dein Problem so, dass du eine Spalte hast, in der du die Werte der Ersparnis hast/ Datensatz.
Diese möchtest du nun summiert haben.Wie wäre es mit einem sum(ERSPARNIS_BYTE) ?
Dafür bräucht man doch eine Unterabfrage oder ähnliches weil ERSPARNIS_BYTE ja nicht in der Datenbank vorhanden ist, ich habe ja die abfrage dazu geschrieben, und nun will ich die abfrage (Ersparnis_Byte) nochmals summieren und es kommt die Fehlermeldung column not found.
yo,
ich bin kein mathe profi, aber ich würde für die spalte "Ersparnis_Byte" gleich vom COUNT die 1 abziehen und klammern setzen, das macht die Formel einfacher.
und wenn ich dich richtig verstanden habe, willst du ja die gesamtersparniss üner alle gruppen hinweg haben. das geht sicherlich auch mit einer unterabfragen, dann hättest du dieses eine ergebnis jedesmal in den jeweiligen gruppierungen angezeigt. da bietet sich eher UNION ALL un, dann hast du das ergebnis nur einmal, musst pseudospalten einsätzen, damit die anzahl von spalten beider abfragen übereinstimmen, die mit UNION ALL verbunden sind. die zweite abfrage für das gesamtergebnis bekommst du recht schnell, musst lediglich noch eine äußere abfrage um die bauen, die du schon hast und die spalte aufsummieren. oder aber du entwickelst eine eigene abfrage nur für diesen zweck.
Ilja