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/