Notes on grouping behavior

This topic describes some EQL grouping behaviors that you should be aware of.

GROUPING and GROUPING_ID interaction with attribute source

Setting an alias to be the same as a selected attribute can change the attribute source. For example, in the following query, amount in stmt1_amount refers to stmt1.amount, while amount in stmt2_amount refers to stmt2.amount:
SELECT stmt1 AS SELECT amount AS amount;
SELECT stmt2 AS SELECT amount+1 AS stmt1_amount, amount+2 AS amount, amount+3 AS stmt2_amount FROM stmt1
This also applies when using the GROUPING and GROUPING_ID functions:
SELECT stmt1 AS SELECT amount AS amount;
SELECT GROUPING(amount) AS stmt1_amount, amount AS amount,
  GROUPING(amount) AS stmt2_amount, orders AS orders,
  FROM stmt1 
  GROUP BY CUBE(amount, orders)

Implicit selects

Implicit selects can be added to the end of the select list. For example, the following two queries are equivalent:
SELECT COUNT(sales) AS cnt GROUP BY totals, price

SELECT COUNT(sales) AS cnt, totals AS totals, price AS price GROUP BY totals, price

This only affects constructs that have different pre-aggregate and post-aggregate behavior, such as the GROUPING function.