Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
[Sql Server] GROUPING SETS, ROLLUP e CUBE
lunedì 05 novembre 2012 - 16.14
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
lun 5 nov 2012 - 16:14
Ciao a tutti
sto studiando sql server e studiando le aggregazioni ho trovato queste 3 iscrizioni: GROUPING SETS, ROLLUP e CUBE.
Dal libro su cui sto studiando e da msdn non ci ho capito molto.
Qualcuno può spiegarmi in modo semplice come funzionano e quando utilizzarli?
Grazie mille
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 6 nov 2012 - 20:42
>Ciao a tutti
ciao
>sto studiando sql server e studiando le aggregazioni ho trovato
>queste 3 iscrizioni: GROUPING SETS, ROLLUP e CUBE.
>Dal libro su cui sto studiando e da msdn non ci ho capito molto.
>Qualcuno può spiegarmi in modo semplice come funzionano e quando utilizzarli?
sono tipi di raggruppamento, e il loro utilizzo dipende dai casi reali (ad esempio calcoli su totali e subtotali)
ROLLUP: definendo le colonne in questo operatore, ipotizzando tre colonne C1, C2 e C3, si ottiene un resultset che torna il risultato della select raggruppato per:
- C1 e C2 e C3
- C1 e C2
- C1
CUBE: definendo le colonne in questo operatore, ipotizzando tre colonne C1, C2 e C3, si ottiene un resultset che torna il risultato della select raggruppato per tutte le possibili combinazioni delle colonne.
GROUPING SETS: definendo le colonne in questo operatore, ipotizzando tre colonne C1, C2 e C3, si ottiene un resultset che torna il risultato della select raggruppato per ogni colonna:
- C1, NULL, NULL
- NULL, C2, NULL
- NULL, NULL, C3
ognuna di queste "righe" che si vengono a creare (diverse per ogni valore delle colonne) torna l'aggregazione (ad esempio una sum) che hai definito nella select. Quindi dipende dalle tue esigenze. Ad esempio, per il primo caso, pensa ad una query che torna una sorta di gerarchia vendite:
STATO --> AREA --> CITTA', usando ROLLUP e ipotizzando di avere una SUM(Venduto) in una select che la consuma otterrai un risultato tipo:
STATO | AREA | CITTA' | VENDUTO
--------------------------------------------
ITALIA | NORD | PARMA | 10000€
ITALIA | NORD | MILANO | 10000€
ITALIA | SUD | ROMA | 50000€
ITALIA | SUD | NAPOLI | 30000€
ITALIA | SUD | NULL | 80000€ (50+30mila)
ITALIA | NORD | NULL | 20000€ (10+10mila)
ITALIA | NULL | NULL | 100000€ (80+20mila)
NULL | NULL | NULL | 100000€
>Grazie mille
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
mer 7 nov 2012 - 09:18
Perfetto!
E GROUPING SETS quando si utilizza?
Ancora grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 7 nov 2012 - 18:01
>Perfetto!
>E GROUPING SETS quando si utilizza?
quando vuoi raggruppare per diversi set.. è molto potente, alla fine con quelle tre colonne potresti anche raggruppare per:
C1 e C2, C3, C2 solamente, ecc..
puoi proprio scegliere il set di raggruppamento.
>Ancora grazie
se ti ha aiutato ti chiedo di accettare la risposta così chiudiamo il post.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !