En MySQL, il existe une astuce pour faire la somme d'une somme très simplement ; il s'agit du modificateur "WITH ROLLUP".
Exemple :
Soit la table suivante que nous appellerons "test" :
+------+--------+
| year | price |
+------+--------+
| 2000 | 500 |
| 2000 | 9.5 |
| 2001 | 5.2 |
| 2000 | 47 |
| 2001 | 98 |
+------+--------+
Si nous souhaitons calculer la somme de la colonne "price" par années, on fait la requête suivante :
SELECT SUM(price)
FROM test
GROUP BY year
Résultat :
+------------+
| SUM(price) |
+------------+
| 556.5 |
| 103.2 |
+------------+
Maintenant, si nous souhaitons faire la somme total de l'ensemble des éléments de la colonne "price", on pourra utiliser la fonctionnalité "WITH ROLLUP" :
SELECT SUM(price)
FROM testprice
GROUP BY year
WITH ROLLUP
Résultat :
+------------+
| SUM(price) |
+------------+
| 556.5 |
| 103.2 |
| 659.7 |
+------------+