• Very nice.  The graphics you took the time to do the "Alice's Restaurant" thing to really make this a very clear article on what Rollups and Cubes actually do.  The graphics clearly demonstrate why you might want to use the Grouping function of a Rollup or Cube.

    There's lot's of folks who have no idea what a "subtree cost" is, how to determine it, or what unit of measurement it is.  Also, although very obvious from the graphics, simple example Selects for the isolation of subtotals and grandtotals would be very helpful for newbies.  A very brief explanation of these two things would have made this a "six star" article.  

    Outstanding article overall!  Thanks for sharing it with us.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)