Oracle SQL でのピボット クエリの作成
Oracle SQL では、データの垂直方向を水平方向に変換するためにピボット クエリが使用されます。一般的なシナリオは、行構成データを列表示形式に変換することです。
例
「MONTH」列と「VALUE」列を含むデータ テーブルについて考えます。
MONTH | VALUE |
---|---|
1 | 100 |
2 | 200 |
3 | 300 |
4 | 400 |
5 | 500 |
6 | 600 |
期待される結果
期待される結果は、対応する「VALUE」を示す各一意の月の列を含むピボット テーブルです。
MONTH_JAN | MONTH_FEB | MONTH_MAR | MONTH_APR | MONTH_MAY | MONTH_JUN |
---|---|---|---|---|---|
100 | 200 | 300 | 400 | 500 | 600 |
Oracle 11g 以降
Oracle 11g 以降では、PIVOT 演算子を使用できます。
create table tq84_pivot ( month number, value number ); insert into tq84_pivot values(1, 100); insert into tq84_pivot values(2, 200); insert into tq84_pivot values(3, 300); insert into tq84_pivot values(4, 400); insert into tq84_pivot values(5, 500); insert into tq84_pivot values(6, 600); -- 同一月有多个值 insert into tq84_pivot values(1, 400); insert into tq84_pivot values(2, 350); insert into tq84_pivot values(4, 150); select * from tq84_pivot pivot ( sum (value) as sum_value for (month) in (1 as month_jan, 2 as month_feb, 3 as month_mar, 4 as month_apr, 5 as month_mai, 6 as month_jun, 7 as month_jul, 8 as month_aug, 9 as month_sep, 10 as month_oct, 11 as month_nov, 12 as month_dec) );
このクエリは必要なピボット テーブルを作成します。
以上がOracle SQLでデータを行から列にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。