初版2007/02/20: 最終更新日2007/02/20
  cube
目次
cube
cube
cubeは、指定したカラムに基づいてデータをグループ化し、超集合行という行を生成します。
cubeは、group by句で指定します。
rollupは、一番目に指定したカラムに対して、超集合行を生成するのに対し、cubeは指定したカラムのありとあらゆる組み合わせに対して超集合行を生成します。
書式は以下のような書き方になります。

select   client_cd,parts_no,sum(suryo)
from     table
groub by cube(client_cd,parts_no)

上記SQLは、client_cd,parts_no毎のsuryoを表示しますが、このデータに対して超集合行という小計値を表示する行が追加されます。
以下のようなデータがあったとします。

client_cd parts_no sum(suryo)
--------- -------- ----------
001       aaa               2
001       aaa               3
001       bbb               1
002       bbb               3
002       bbb               3
003       ccc               3
003       ddd               3

このデータに対して上記SQLを実行すると以下のような結果になります。

client_cd parts_no sum(suryo)
--------- -------- ----------
                           18   ←超集合行
001                         5   ←超集合行
002                         7   ←超集合行
003                         6   ←超集合行
          aaa               5   ←超集合行
001       aaa               5
          bbb               1   ←超集合行
001       bbb               1
          bbb               6   ←超集合行
002       bbb               6
          ccc               3   ←超集合行
003       ccc               3
          ccc               3   ←超集合行
003       ccc               3

このように、cubeはclient_cd毎の超集合、client_cdとparts_no毎の超集合、全てのデータにおける超集合を生成します。