SQL SERVER 2008から使用可能。(Oracle 10gも可)
SQL2003 標準規格で定義されている。
全体合計や、指定した項目の値ごとの合計を取得できる。
・通常のGroup By
select hoge.YEAR , hoge.NAME , sum(money) From hoge group by hoge.YEAR , hoge.NAME
・Group Byの結果
2007 商品A 330 2007 商品B 200 2008 商品A 100 2008 商品C 900
・ GROUPING SETSを使用
select hoge.YEAR , hoge.NAME , sum(money) From hoge group by GROUPING SETS ( hoge.YEAR, hoge.NAME, () --()は全体を取得することを指定 )
・GROUPING SETSの結果
NULL 商品A 430 --NAMEごとの合計 NULL 商品B 200 -- NULL 商品C 900 -- NULL NULL 1530 --全体合計 2007 NULL 530 --YEARごとの合計 2008 NULL 1000 --