Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Analytical Functions
 

Getting Values and Subtotals in One Go with GROUPING SETS

SQL> SQL> CREATE TABLE product   2  (item         VARCHAR(10)   3  ,serialNumber INT   4  ,price        INT   5  ); Table created. SQL> INSERT INTO product VALUES ('AAA', 1,10); 1 row created. SQL> INSERT INTO product VALUES ('BBB',2,10); 1 row created. SQL> INSERT INTO product VALUES ('AAA', 3,10); 1 row created. SQL> INSERT INTO product VALUES ('CCC',4,10); 1 row created. SQL> INSERT INTO product VALUES ('BBB',5,10); 1 row created. SQL> INSERT INTO product VALUES ('BBB',6,10); 1 row created. SQL> SQL> SELECT item, serialNumber, SUM(price)   2    FROM product   3    GROUP BY GROUPING SETS ((item,serialNumber),(item),()); ITEM       SERIALNUMBER SUM(PRICE) ---------- ------------ ---------- AAA                   1         10 AAA                   3         10 AAA                             20 BBB                   2         10 BBB                   5         10 BBB                   6         10 BBB                             30 CCC                   4         10 CCC                             10                                 60 10 rows selected. SQL> SQL> DROP TABLE product; Table dropped. SQL>