ピボットとは?ぴぼっと
ピボットとは、集計結果の行と列に割り当てる次元を入れ替える操作。値そのものは変えず見せ方だけを変えるので、合計は入れ替えの前後で一致する。SQLではCASE式を列の数だけ並べて1回の走査で作るのが基本で、Oracle 11g以降とSQL ServerにはPIVOT句、PostgreSQLにはtablefunc拡張のcrosstab関数がある。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
同じ数字でも、行と列のどちらに何を置くかで読み取れることが変わる。月を列にすれば季節の波が見え、地域を列にすれば地域差が見える。読み方を変えるたびに集計をやり直すのは無駄なので、集計済みの表を回して見せる操作として整理された。DB側から見れば、行を列へ畳むことで走査回数を増やさずに済ませる書き方の話になる。
具体例
受注明細を「商品分類×月」で集計した表を、行と列を入れ替えて「月×商品分類」にする。PostgreSQLなら sum(CASE WHEN mon=1 THEN amount END) AS m01 を12本並べれば、明細1,000万行を1回だけ走査して12列の表が得られる。GROUP BYを12回書くより走査が1/12で済む。
試験での引っ掛け
対象を絞るスライス・ダイスや、粒度を変えるドリルダウンとは別の操作で、ピボットでは粒度も対象範囲も変わらない。実装上の落とし穴は列名を実行時に決められないことで、月が増えるたびに文を書き換えるか、動的SQLに頼ることになる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。