Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Comprendere le differenze tra CUBE e ROLLUP

Non vedrai alcuna differenza poiché stai solo arrotolando una singola colonna. Considera un esempio in cui lo facciamo

ROLLUP (YEAR, MONTH, DAY)

Con un ROLLUP , avrà i seguenti output:

YEAR, MONTH, DAY
YEAR, MONTH
YEAR
()

Con CUBE , avrà quanto segue:

YEAR, MONTH, DAY
YEAR, MONTH
YEAR, DAY
YEAR
MONTH, DAY
MONTH
DAY
()

CUBE contiene essenzialmente ogni possibile scenario di rollup per ciascun nodo mentre ROLLUP manterrà intatta la gerarchia (quindi non salterà MESE e mostrerà ANNO/GIORNO, mentre CUBE volontà)

Questo è il motivo per cui non hai visto alcuna differenza poiché avevi solo una singola colonna che stavi arrotolando.

Spero di esserti stato d'aiuto.