oracleのpivot関数の使い方は何ですか。
Oracleデータベースでは、PIVOT関数を使用して行を列に変換することができます。以下はPIVOT関数の使用方法です。
salesという名前のテーブルがあると仮定すると、次の列が含まれています。
- 年:年度
- 四半期:季節
- 売り上げ:金額
列名に季節、行名に年、値として売上高を使用して表示するには、次のようにPIVOT関数を使用できます:
SELECT *
FROM (
SELECT year, quarter, amount
FROM sales
)
PIVOT (
SUM(amount)
FOR quarter IN ('Q1', 'Q2', 'Q3', 'Q4')
)
ORDER BY year;
上記のステートメントでは、まずsalesテーブルからyear、quarter、amountの列を選択します。その後、PIVOT関数を使用して、quarter列を列名とし、amount列を値として集約し、表示する四半期をIN句で指定します。最後に、yearでソートします。
他の列に集計操作を行う場合は、SUM関数をAVGやMAXなど他の集計関数に置き換えることができます。
PIVOT機能は、クエリを書く際に表示する列値が既知の場合にのみ使用でき、動的に列を生成することはできません。列を動的に生成する必要がある場合は、動的SQLを使用することを検討してください。