「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
ピボット・テーブルを作成する。
表にしたもの。
分類 | 特徴 | 変数の例 |
デモグラフィック変数 | ・人口統計分布に基づく変数。 ・基礎的情報として見ることが多い。 | 性別、年代、家族構成、職業、年収、学歴など |
地理的変数 | ・地理的に分割される変数。 ・消費者向けのマーケティングで利用されることが多い。 | 国、行政区、気候地域、都市と農村など |
心理的変数 | ・価値観やライフスタイル、好み等を表す変数。 ・意識調査の結果から変数をつくることが多い。 | **が好き、**を常用しているなど |
行動変数 | ・行動を表す変数。 ・IT化の進展によって集計が容易になった。 | 購買履歴、使用頻度、アクセスログなど |
表計算ソフトや、分析ライブラリに実装されている機能。
結果のまとめ
商品の売上高を顧客属性(年齢層や性別)毎に集計
クロス集計したビュー
SELECT 名称, 属性A, 属性B, 属性C, 分類A, 分類B, 分類C, SUM(数値) as 合計 From Xテーブル GROUP BY 名称, 属性A, 属性B, 属性C, 分類A, 分類B, 分類C,
縦持ち → 横持ち
SELECT 名称, max(CASE WHEN 属性A = 'XXXX' THEN 属性B END) AS XXXX, max(CASE WHEN 属性A = 'YYYY' THEN 属性C END) AS YYYY, 分類A, 分類B, 分類C FROM クロス・テーブル GROUP BY 名称, 属性A, 属性B, 属性C, 分類A, 分類B, 分類C
※ 1 : 1 の Key-Valueを縦持ちにする場合、
THEN 属性X else null END の様にelse nullを追加する。
※ SQLだと、RDBMSによってはPIVOT句が用意されている。
横持ち → 縦持ち
SELECT 名称, 'XXXX' as 属性A, XXXX as 属性B, 分類A, 分類B, 分類C FROM ピボット・テーブル UNION ALL SELECT 名称, 'YYYY' as 属性A, YYYY as 属性C, 分類A, 分類B, 分類C FROM ピボット・テーブル ;
※ SQLだと、RDBMSによってはUNPIVOT句が用意されている。
クロス・テーブルを分類A, 属性Aで集計。
SELECT 分類A, 属性A, SUM(合計) From クロス・テーブル GROUP BY 分類A, 属性A
※ ピボット / アン・ピボットしたテーブルを対象としても良い。
基礎分析結果の、分類Aを固定し、分類Bで集計
SELECT 分類B, 属性A, SUM(合計) From クロス・テーブル Where 分類A = 'XXXX' GROUP BY 分類B, 属性A
基礎分析結果の、分類ではなく、属性を変える(属性A → 属性B)。
SELECT 分類A, 属性B, SUM(合計) From クロス・テーブル GROUP BY 分類A, 属性B
※ 分類A → 分類Bは詳細化。属性A → 属性Bは回転(軸の変更)。
基礎分析結果の、非表示の属性項目を固定する。
SELECT 分類A, 属性A, SUM(合計) From クロス・テーブル Where 属性B = 'XXXX' GROUP BY 分類A, 属性A
※ 次元(軸)を減らし、3次元 → 2次元データへ。
例えば、ピボット・テーブルに対して、元データで内訳をみる。
SELECT * FROM Xテーブル WHERE 名称 = '集計条件に指定した列の値' AND 属性A = 'XXXX or YYYY : 縦持ちにした値の列名'
で構成される。