Frage zu SQL-Statement

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Frage zu SQL-Statement

Beitrag von Duff » 31.08.2007 15:09:27

Hallo,

ich habe ein SQL-Statement, welches sinngemäß so aussieht:

select count(*) Anzahl, a.paramter1, b.parameter2, ...
from table a, table b
where .....

Die Ausgabe sieht dann so aus:
Anzahl Paramter1 Parameter2
23 value1 value2
3 value1.1 value2.1
...

Ist es nun möglich, auch noch eine Summer über das Ganze zu bilden?
Vielleicht irgendwie mit sum?

Also ich hätte als letzte Ausgabe noch gerne die Werte unter Anzahl als Summe ausgegeben.

Ist das überhaupt möglich mit einer SQL-Abfrage?
Oh, yeah!

utopia
Beiträge: 12
Registriert: 17.04.2007 10:47:51

Beitrag von utopia » 31.08.2007 15:35:25

Hi,

ich muss zugeben, dass ich nicht ganz verstanden habe was du meintest. Deshalb mal meine Antwort so wie ich es verstanden habe:

Wenn du folgendes Ergebnis haben willst:

23 | value1 | value2
3 | value1.1| value2.1
26 | foo | bar <-- SUM(count(*))

Es ist nicht möglich anschließend noch eine Summe über alle Datensätze bzw. Attribute auszugeben. Zumindest nicht in ANSI SQL (sofern ich weiß). Da wirst du wohl nicht im zwei stmts rumkommen.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 31.08.2007 15:59:36

utopia hat geschrieben:Hi,

ich muss zugeben, dass ich nicht ganz verstanden habe was du meintest. Deshalb mal meine Antwort so wie ich es verstanden habe:

Wenn du folgendes Ergebnis haben willst:

23 | value1 | value2
3 | value1.1| value2.1
26 | foo | bar <-- SUM(count(*))

Es ist nicht möglich anschließend noch eine Summe über alle Datensätze bzw. Attribute auszugeben. Zumindest nicht in ANSI SQL (sofern ich weiß). Da wirst du wohl nicht im zwei stmts rumkommen.
Ja genau, so in etwa meine ich das.

Ich habe in der ersten Spalte der Ausgabe einen count(*). Am liebsten hätte ich dann am Ende unter dem count(*), diese alle aufadiert, so dass ich eine gesamt Summe aller counts habe.

...ob das nun besser verständlich ist...ist aber schwierig in Worte zu fassen ;-)
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 31.08.2007 17:15:26

mittels "union all" würde das schon gehen

Code: Alles auswählen

SQL> select count(*) anzahl,t2.pid from t1,t2 where t1.id=t2.pid group by t2.pid 
union all 
select sum(count(*)),null from t1,t2 where t1.id=t2.pid group by t2.pid;

    ANZAHL        PID
---------- ----------
         2          1
         1          2
         3
Gruß
gms

utopia
Beiträge: 12
Registriert: 17.04.2007 10:47:51

Beitrag von utopia » 31.08.2007 19:14:43

gms hat geschrieben:mittels "union all" würde das schon gehen
Stimmt, das hab ich total vergessen!

Antworten