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毎の超集合、全てのデータにおける超集合を生成します。