Es un momento Leo, ayudo a una persona con un caso similar, te lo pongo, ojalá te ayude, a mi si me sirvio mucho
Código SQL:
Ver originalmysql> SELECT YEAR, country, product, SUM(profit)
-> FROM sales
-> GROUP BY YEAR, country, product WITH ROLLUP;
+------+---------+------------+-------------+
| YEAR | country | product | SUM(profit) |
+------+---------+------------+-------------+
| 2000 | Finland | Computer | 1500 |
| 2000 | Finland | Phone | 100 |
| 2000 | Finland | NULL | 1600 |
| 2000 | India | Calculator | 150 |
| 2000 | India | Computer | 1200 |
| 2000 | India | NULL | 1350 |
| 2000 | USA | Calculator | 75 |
| 2000 | USA | Computer | 1500 |
| 2000 | USA | NULL | 1575 |
| 2000 | NULL | NULL | 4525 |
| 2001 | Finland | Phone | 10 |
| 2001 | Finland | NULL | 10 |
| 2001 | USA | Calculator | 50 |
| 2001 | USA | Computer | 2700 |
| 2001 | USA | TV | 250 |
| 2001 | USA | NULL | 3000 |
| 2001 | NULL | NULL | 3010 |
| NULL | NULL | NULL | 7535 |
+------+---------+------------+-------------+
Los elementos marcados con ROJO representan el subtotal por año y pais. Los elementos marcados con Verde representan el subtotal por año, y finalmente el marcado como Azul representa el total-total