mysqlのgroup by with rollup, group by with cubeについて。
tableの地区,手商品の二つのカラムでgroup byだけ書いた場合、もっとも低いレベル(この場合は地区と商品
)のみの集計値となる。上位グループの地区毎の集計値も欲しい場合、また別のsqlを書く必要がある。
けど、group by with roll upを使えば、上位グループと総計値も求めてくれるらしい。
・地区と商品、地区の2つのレベルで数量の合計を集計するsql
select 地区,商品, sum(数量) from 売上
group bu with rollup(地区,商品);
知らなかった。sqlを二つ書いたり、on memoryでやってた。気づきの世界だ。
あと、group by with cubeは、異なるグループの小計と総計が求められる。
・地区と商品、地区、商品の3つのレベルで数量の合計を集計するsql
select 地区,商品, sum(数量) from 売上
group bu with cube(地区,商品);
参考本
tableの地区,手商品の二つのカラムでgroup byだけ書いた場合、もっとも低いレベル(この場合は地区と商品
)のみの集計値となる。上位グループの地区毎の集計値も欲しい場合、また別のsqlを書く必要がある。
けど、group by with roll upを使えば、上位グループと総計値も求めてくれるらしい。
・地区と商品、地区の2つのレベルで数量の合計を集計するsql
select 地区,商品, sum(数量) from 売上
group bu with rollup(地区,商品);
知らなかった。sqlを二つ書いたり、on memoryでやってた。気づきの世界だ。
あと、group by with cubeは、異なるグループの小計と総計が求められる。
・地区と商品、地区、商品の3つのレベルで数量の合計を集計するsql
select 地区,商品, sum(数量) from 売上
group bu with cube(地区,商品);
参考本
- SQL実践リファレンス/九天社
- ¥2,625
- Amazon.co.jp