• I almost forgot that when we added the OLAP functions, became pretty close to Dr. Codd's two kinds of null. We have a null. That is in the actual data, and the null, that is created by rollups, cubes, and grouping sets. Unfortunately I do not think that grouping () works with outer joins.

    https://msdn.microsoft.com/en-us/.../ms178544.aspx

    GROUPING is used to distinguish the null values that are returned by ROLLUP, CUBE or GROUPING SETS from standard null values. The NULL returned as the result of a ROLLUP, CUBE or GROUPING SETS operation is a special use of NULL. This acts as a column placeholder in the result set and means all.

    Books in Celko Series for Morgan-Kaufmann Publishing
    Analytics and OLAP in SQL
    Data and Databases: Concepts in Practice
    Data, Measurements and Standards in SQL
    SQL for Smarties
    SQL Programming Style
    SQL Puzzles and Answers
    Thinking in Sets
    Trees and Hierarchies in SQL