# Summe von Gruppen in Oracle 10g



## hamburger83 (9. Juni 2008)

Hallo zusammen,

ich erstelle gerade ein Report für ein Bestellsystem. Folgende Query:

select product
         ,category
         ,sum(anzahl) 
group by msn,
             b.cate

Ergebnis ist jetzt nach Produkt und Produktkategorie die Anzahl der Bestellungen pro Produkt und Produktkategorie.

Gibt es eine einfache Möglichkeit die Werte pro Produktkategorie und dann Produkt zu summieren?
Oder muss ich eine neuen Abfrage schreiben ohne "group by" und die Abfragen joinen?

Vielen Dank im voraus.

Hamburger


----------



## Thomas Darimont (9. Juni 2008)

Hallo,

das könntest du mit den Analytic Functions rollup bzw. cube erledigen:
http://www.remote-dba.net/pl_sql/t_analytic_functions_oracle_rollup_cube.htm
schau mal hier:

```
create table data(id int, itemid int, categoryId int, amount int);

insert into data values(1,1,1,1);
insert into data values(2,2,2,1);
insert into data values(3,3,2,1);
insert into data values(4,1,1,1);
insert into data values(5,1,1,1);
insert into data values(6,1,1,1);
insert into data values(7,2,2,1);
insert into data values(8,2,2,1);
insert into data values(9,1,1,1);
insert into data values(10,3,2,1);

SQL> select distinct categoryId,itemid,sum(amount) from data group by rollup(categoryId,itemid);

CATEGORYID     ITEMID SUM(AMOUNT)
---------- ---------- -----------
         2          3           2
         2          2           3
         1          1           5
         1                      5
         2                      5
                               10

ItemId Sum(Amount)
1    5
2    3
3    2

CategoryId Sum(Amount)
1    5
2    5
```

Gruß Tom


----------



## hamburger83 (10. Juni 2008)

Thx, sowas hab ich gesucht!

Gruss, Hamburger


----------

