Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » クエリとデータ修正 » OLAP のサポート

 

GROUPING SETS のショートカットとしての ROLLUP と CUBE

複数の異なるデータ分割を単一の結果セットに連結する場合は、GROUPING SETS を使用すると便利です。ただし、多くのグループ化を指定する必要があり、かつ小計を含める場合は、ROLLUP 拡張と CUBE 拡張を使用できます。

ROLLUP 句と CUBE 句は、事前に定義された GROUPING SETS 指定のショートカットと見なすことができます。

ROLLUP は、空のグループ化セット「()」から始まり、追加する式を前の式に連結させるグループ化セットが次々と続くような、一連のグループ化を指定するのと同等です。たとえば、3 つのグループ化式 a、b、c があり、ROLLUP を指定した場合は、セット ()、(a)、(a, b)、(a, b, c ) を使用して GROUPING SETS 句を指定した場合と同じ結果になります。この構成は、階層グループ化と呼ばれることもあります。

CUBE を使用すると、さらに多くのグループ化を実現できます。CUBE を指定することは、すべての可能な GROUPING SETS を指定するのと同等です。たとえば、同様の 3 つのグループ化式 a、b、c があり、CUBE を指定した場合は、セット ()、(a)、(a, b)、(a, c)、(b)、(b, c)、(c)、(a, b, c ) を使用して GROUPING SETS 句を指定した場合と同じ結果になります。

ROLLUP または CUBE を指定する場合は、GROUPING 関数を使用して、結果内にあるプレースホルダの NULL を識別してください。プレースホルダの NULL は、ROLLUP または CUBE による結果セット内で暗黙的である小計のローが原因で発生します。

 参照

ROLLUP 句
CUBE 句
GROUPING 関数を使用した NULL の検出