February 2022
Intermediate to advanced
560 pages
8h 5m
Japanese
本章では、レポートの作成に便利だと思われるクエリを紹介します。このようなクエリでは、レポート特有の書式設定を考慮するだけでなく、さまざまなレベルの集約が行われます。また、本章では、結果セットの転置やピボット(変換)、つまり行を列に変換してデータの形状を変換することも取り上げます。
一般に、本章のレシピにはデータが保存されているのとは異なるフォーマットや形状でデータを表せるという共通点があります。変換に慣れるにつれて、本章で紹介する方法以外の使い方もきっと見つけられるようになるでしょう。
行のグループから値を取得し、その値をグループごとに1行の各列に移動したい。例えば、部署ごとの従業員数を示す次のような結果セットがある。
DEPTNO CNT
------ ----------
10 3
20 5
30 6
この出力を次のようにフォーマットし直したい。
DEPTNO_10 DEPTNO_20 DEPTNO_30
--------- ---------- ----------
3 5 6
これは、保存されている形状とは異なる形状でデータを表す典型例である。
CASE式と集約関数SUMを使って結果セットを転置します。
select sum(case when deptno=10 then 1 else 0 end) as deptno_10,sum(case when deptno=20 then 1 else 0 end) as deptno_20,sum(case when deptno=30 then 1 else 0 end) as deptno_30from ...
Read now
Unlock full access