グルーピングの動作に関する注意

このトピックでは、EQLのグルーピング動作のうち、注意が必要なものについて説明します。

GROUPINGおよびGROUPING_IDと属性ソースとの相互作用

選択した属性と別名を同じ名前にすると、属性ソースを変更できます。たとえば、次に示す問合せでは、stmt1_amountamountstmt1.amountを参照していますが、stmt2_amountamountstmt2.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
これは、GROUPING関数やGROUPING_ID関数を使用するときにも当てはまります。
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)

暗黙的な選択

暗黙的な選択は、selectリストの末尾に追加できます。たとえば、次の2つの問合せは等価です。
SELECT COUNT(sales) AS cnt GROUP BY totals, price

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

この影響を受けるのは、コンストラクトのうち、集計前と集計後の動作が異なるもののみです。たとえば、GROUPING関数です。