E’ possibile estrarre in una unica query totali e subtotali utilizzando l’operatore WITH ROLLUP. I campi di cui viene mostrato il subtotale vengono riportati con valore null.
Di seguito un esempio che recupera le visite del blog nel mese di maggio suddivise per os e browser con totale generale e subtotale per os.
SELECT os, browser, COUNT( * ) FROM `wp_statpress` WHERE os <> '' AND browser <> '' AND DATE >= "20090501" AND DATE <= "20090531" GROUP BY os, browser WITH ROLLUP
| os | browser | count( * ) |
|---|---|---|
| Debian Linux | Epiphany | 2 |
| Debian Linux | Firefox 3 | 44 |
| Debian Linux | Iceweasel | 209 |
| Debian Linux | Internet Explorer 7 | 3 |
| Debian Linux | Links | 1 |
| Debian Linux | NULL | 259 |
| iPhone | Safari | 20 |
| iPhone | NULL | 20 |
| Linux | Chrome | 2 |
| Linux | Epiphany | 2 |
| Linux | Firefox | 11 |
| Linux | Firefox 2 | 36 |
| Linux | Firefox 3 | 335 |
| Linux | Generic Gecko | 26 |
| Linux | Iceweasel | 2 |
| Linux | Konqueror | 16 |
| Linux | Mozilla Minefield | 5 |
| Linux | Opera | 20 |
| Linux | Safari | 1 |
| Linux | Thunderbird | 159 |
| Linux | NULL | 615 |
| Mac OS X | Firefox 2 | 1 |
| Mac OS X | Firefox 3 | 151 |
| Mac OS X | Opera | 2 |
| Mac OS X | Safari | 154 |
| Mac OS X | NULL | 308 |
| Suse Linux | Firefox 3 | 27 |
| Suse Linux | SeaMonkey | 1 |
| Suse Linux | NULL | 28 |
| Symbian | Safari | 13 |
| Symbian | NULL | 13 |
| Ubuntu Linux | Firefox 2 | 37 |
| Ubuntu Linux | Firefox 3 | 1058 |
| Ubuntu Linux | Mozilla Minefield | 2 |
| Ubuntu Linux | NULL | 1097 |
| Windows 2000 | Firefox 2 | 3 |
| Windows 2000 | Firefox 3 | 2 |
| Windows 2000 | Internet Explorer 5 | 4 |
| Windows 2000 | Internet Explorer 6 | 67 |
| Windows 2000 | Opera | 4 |
| Windows 2000 | NULL | 80 |
| Windows 95 | Internet Explorer 4 | 341 |
| Windows 95 | Internet Explorer 5 | 4 |
| Windows 95 | NULL | 345 |
| Windows CE | Internet Explorer 4 | 1 |
| Windows CE | Internet Explorer 6 | 2 |
| Windows CE | NULL | 3 |
| Windows ME | Internet Explorer 6 | 9 |
| Windows ME | NULL | 9 |
| Windows NT 4 | Chrome | 2 |
| Windows NT 4 | Firefox 3 | 68 |
| Windows NT 4 | Internet Explorer | 1 |
| Windows NT 4 | Internet Explorer 5 | 2 |
| Windows NT 4 | Internet Explorer 6 | 3 |
| Windows NT 4 | Internet Explorer 8 | 22 |
| Windows NT 4 | Opera | 1 |
| Windows NT 4 | NULL | 99 |
| Windows Server 2003 | Firefox 3 | 17 |
| Windows Server 2003 | Internet Explorer 6 | 18 |
| Windows Server 2003 | Internet Explorer 7 | 51 |
| Windows Server 2003 | SeaMonkey | 1 |
| Windows Server 2003 | NULL | 87 |
| Windows Vista | Chrome | 48 |
| Windows Vista | Firefox 2 | 11 |
| Windows Vista | Firefox 3 | 403 |
| Windows Vista | Internet Explorer 7 | 87 |
| Windows Vista | Internet Explorer 8 | 65 |
| Windows Vista | Safari | 2 |
| Windows Vista | NULL | 616 |
| Windows XP | Chrome | 78 |
| Windows XP | Firefox | 4 |
| Windows XP | Firefox 2 | 357 |
| Windows XP | Firefox 3 | 1817 |
| Windows XP | Generic Gecko | 1 |
| Windows XP | Internet Explorer 6 | 3123 |
| Windows XP | Internet Explorer 7 | 780 |
| Windows XP | Internet Explorer 8 | 140 |
| Windows XP | K-Meleon | 1 |
| Windows XP | Opera | 144 |
| Windows XP | Thunderbird | 28 |
| Windows XP | NULL | 6473 |
| NULL | NULL | 10052 |
| os | browser | count( * ) |
|---|---|---|
| Debian Linux | Epiphany | 2 |
| Debian Linux | Firefox 3 | 44 |
| Debian Linux | Iceweasel | 209 |
| Debian Linux | Internet Explorer 7 | 3 |
| Debian Linux | Links | 1 |
| Debian Linux | NULL | 259 |
| iPhone | Safari | 20 |
| iPhone | NULL | 20 |
| Linux | Chrome | 2 |
| Linux | Epiphany | 2 |
| Linux | Firefox | 11 |
| Linux | Firefox 2 | 36 |
| Linux | Firefox 3 | 335 |
| Linux | Generic Gecko | 26 |
| Linux | Iceweasel | 2 |
| Linux | Konqueror | 16 |
| Linux | Mozilla Minefield | 5 |
| Linux | Opera | 20 |
| Linux | Safari | 1 |
| Linux | Thunderbird | 159 |
| Linux | NULL | 615 |
| Mac OS X | Firefox 2 | 1 |
| Mac OS X | Firefox 3 | 151 |
| Mac OS X | Opera | 2 |
| Mac OS X | Safari | 154 |
| Mac OS X | NULL | 308 |
| Suse Linux | Firefox 3 | 27 |
| Suse Linux | SeaMonkey | 1 |
| Suse Linux | NULL | 28 |
| Symbian | Safari | 13 |
| Symbian | NULL | 13 |
| Ubuntu Linux | Firefox 2 | 37 |
| Ubuntu Linux | Firefox 3 | 1058 |
| Ubuntu Linux | Mozilla Minefield | 2 |
| Ubuntu Linux | NULL | 1097 |
| Windows 2000 | Firefox 2 | 3 |
| Windows 2000 | Firefox 3 | 2 |
| Windows 2000 | Internet Explorer 5 | 4 |
| Windows 2000 | Internet Explorer 6 | 67 |
| Windows 2000 | Opera | 4 |
| Windows 2000 | NULL | 80 |
| Windows 95 | Internet Explorer 4 | 341 |
| Windows 95 | Internet Explorer 5 | 4 |
| Windows 95 | NULL | 345 |
| Windows CE | Internet Explorer 4 | 1 |
| Windows CE | Internet Explorer 6 | 2 |
| Windows CE | NULL | 3 |
| Windows ME | Internet Explorer 6 | 9 |
| Windows ME | NULL | 9 |
| Windows NT 4 | Chrome | 2 |
| Windows NT 4 | Firefox 3 | 68 |
| Windows NT 4 | Internet Explorer | 1 |
| Windows NT 4 | Internet Explorer 5 | 2 |
| Windows NT 4 | Internet Explorer 6 | 3 |
| Windows NT 4 | Internet Explorer 8 | 22 |
| Windows NT 4 | Opera | 1 |
| Windows NT 4 | NULL | 99 |
| Windows Server 2003 | Firefox 3 | 17 |
| Windows Server 2003 | Internet Explorer 6 | 18 |
| Windows Server 2003 | Internet Explorer 7 | 51 |
| Windows Server 2003 | SeaMonkey | 1 |
| Windows Server 2003 | NULL | 87 |
| Windows Vista | Chrome | 48 |
| Windows Vista | Firefox 2 | 11 |
| Windows Vista | Firefox 3 | 403 |
| Windows Vista | Internet Explorer 7 | 87 |
| Windows Vista | Internet Explorer 8 | 65 |
| Windows Vista | Safari | 2 |
| Windows Vista | NULL | 616 |
| Windows XP | Chrome | 78 |
| Windows XP | Firefox | 4 |
| Windows XP | Firefox 2 | 357 |
| Windows XP | Firefox 3 | 1817 |
| Windows XP | Generic Gecko | 1 |
| Windows XP | Internet Explorer 6 | 3123 |
| Windows XP | Internet Explorer 7 | 780 |
| Windows XP | Internet Explorer 8 | 140 |
| Windows XP | K-Meleon | 1 |
| Windows XP | Opera | 144 |
| Windows XP | Thunderbird | 28 |
| Windows XP | NULL | 6473 |
| NULL | NULL | 10052 |
Per approfondimenti consultare i seguenti link:
- http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html
- http://databases.about.com/od/sql/l/aacuberollup.htm
- http://database.html.it/guide/lezione/2454/operatori-e-funzioni-ii/
[…] approfondire consulta articolo originale: lejubila's blog » Eseguire una query mysql contenente totali … Articoli correlati: [MySQL] Errore nella query…perchè? – AlterVista | Spazio web […]