「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
最も基本的なデータ分析方法でビジネス インテリジェンス(BI)でも可能。
表計算ソフトや、分析ライブラリに実装されている機能。
GROUP BYを使用する場合、SELECTには、
GROUP BYで指定した列と集計関数のみを指定できる。
クロス集計したビュー
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 ピボット・テーブル ;
クロス・テーブルを分類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
基礎分析結果の、非表示の属性項目を固定する。
SELECT 分類A, 属性A, SUM(合計) From クロス・テーブル Where 属性B = 'XXXX' GROUP BY 分類A, 属性A
※ SQLだと、RDBMSによってはUNPIVOT句が用意されている。
例えば、ピボットに対して、元データで内訳をみる。
SELECT * FROM Xテーブル WHERE 名称 = '集計条件に指定した列の値' AND 属性A = 'XXXX or YYYY : 縦持ちにした値の列名'
で構成される。