Monday, 26 August 2019

Sum with rollup : ROLLUP « Select Clause « MySQL

mysql> CREATE   TABLE PENALTIES
    ->         (PAYMENTNO      INTEGER      NOT NULL,
    ->          EmployeeNO       INTEGER      NOT NULL,
    ->          PAYMENT_DATE   DATE         NOT NULL,
    ->          AMOUNT         DECIMAL(7,2) NOT NULL,
    ->          PRIMARY KEY    (PAYMENTNO)          );
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> INSERT INTO PENALTIES VALUES (1,  6, '1980-12-08',100);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO PENALTIES VALUES (2, 44, '1981-05-05', 75);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO PENALTIES VALUES (3, 27, '1983-09-10',100);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO PENALTIES VALUES (4,104, '1984-12-08', 50);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO PENALTIES VALUES (5, 44, '1980-12-08', 25);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO PENALTIES VALUES (6,  8, '1980-12-08', 25);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO PENALTIES VALUES (7, 44, '1982-12-30', 30);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO PENALTIES VALUES (8, 27, '1984-11-12', 75);
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> SELECT   EmployeeNO, SUM(AMOUNT)
    -> FROM     PENALTIES
    -> GROUP BY EmployeeNO WITH ROLLUP;
+------------+-------------+
| EmployeeNO | SUM(AMOUNT) |
+------------+-------------+
|          6 |      100.00 |
|          8 |       25.00 |
|         27 |      175.00 |
|         44 |      130.00 |
|        104 |       50.00 |
|       NULL |      480.00 |
+------------+-------------+
6 rows in set (0.00 sec)

mysql>
mysql> drop table penalties;
Query OK, 0 rows affected (0.00 sec)

0 comments:

Post a Comment