---
title: 【Redshift】PIVOT・UNPIVOT機能がいつの間にか追加されていたので触ってみる
description: サイレント追加？されていたRedshiftのPIVOT・UNPIVOTを試します！
image: https://knowledge.insight-lab.co.jp/hubfs/redshift-pivot.png
---

[![BI-LAB_01](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/BI-LAB_01.png?width=800&height=220&name=BI-LAB_01.png) ![BI-LAB_01](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/BI-LAB_01.png?width=800&height=220&name=BI-LAB_01.png)](https://knowledge.insight-lab.co.jp/bi)

[![ご相談・お問い合わせ](https://hubspot-no-cache-na2-prod.s3.amazonaws.com/cta/default/5935783/interactive-160578501294.png)](https://knowledge.insight-lab.co.jp/hs/cta/wi/redirect?encryptedPayload=AVxigLIBRj9yKhCxTuyeacyUG6X0W4Fw7%2BtRirgfVt2jiqG5xpYnj7FIUQU%2BH5LbQ%2B1yZLWZRGsHZQn6eU2%2F3qZ1L1JVyOQBGHVZ22LhdAq%2BwBM915RcFTFZLVGXr5BWLcxsTsYcxXa3PcTvzdgzWhpSsDfTfVIC72a0D3FUS8PWSJtvPseD2Ee6%2BAoN&webInteractiveContentId=160578501294&portalId=5935783)

<https://knowledge.insight-lab.co.jp/bi/redshift-new-pivot-unpivot#tmpmodule_159469655889724>

- サービス紹介
    - [DATA-TERASU](https://service.insight-lab.co.jp/data-terasu)
    - [DATA-CONPASS](https://service.insight-lab.co.jp/data-conpass)
    - [Data Analytics Dojo](https://service.insight-lab.co.jp/data-DOJO)
- 取り扱い製品
    - [Snowflake](https://service.insight-lab.co.jp/snowflake)
    - [dbt](https://service.insight-lab.co.jp/dbt)
    - [TROCCO](https://service.insight-lab.co.jp/TROCCO)
    - [Qlik](https://service.insight-lab.co.jp/Qlik)
    - [Vizlib](https://service.insight-lab.co.jp/Vizlib)
    - [Sisense](https://service.insight-lab.co.jp/sisense)
    - [Tableau](https://service.insight-lab.co.jp/Tableau)
- [導入事例](https://solution.insight-lab.co.jp/bi/download-case-studies)
- [お役立ち資料](https://download.insight-lab.co.jp/bi/download)
- [ニュース](https://knowledge.insight-lab.co.jp/bi/tag/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9)

###### 5 分で読むことができます。

# [【Redshift】PIVOT・UNPIVOT機能がいつの間にか追加されていたので触ってみる](https://knowledge.insight-lab.co.jp/bi/redshift-new-pivot-unpivot)

 執筆者 [BI LAB編集室](https://knowledge.insight-lab.co.jp/bi/author/bi-lab) 更新日時 2022年1月28日

###### Topics: [Redshift](https://knowledge.insight-lab.co.jp/bi/tag/redshift)

![](https://knowledge.insight-lab.co.jp/hubfs/redshift-pivot.png)

 目次

今回の記事はAWS RedshiftのPIVOTとUNPIVOTについてになります。

最近テーブルをUNPIVOTしたいと思い、RedshiftのUNPIVOTについてググったところ  
[PIVOT and UNPIVOT examples](https://docs.aws.amazon.com/redshift/latest/dg/r_FROM_clause-pivot-unpivot-examples.html)  
というAWSドキュメントの英語記事が出てきて驚きました！

何故驚いたのか、詳しく記載します！

## RedshiftのPIVOTとUNPIVOTについて

他のクラウドDWHであるBigQueryやSnowflakeではPIVOT・UNPIVOT機能はありましたが  
元々Redshiftにはありませんでした。

- BigQuery(2021年にPreviewとなり追加されました)  
  [https://cloud.google.com/blog/ja/topics/developers-practitioners/cool-summer-with-bigquery-user-friendly-sql](https://cloud.google.com/blog/ja/topics/developers-practitioners/cool-summer-with-bigquery-user-friendly-sql)
- Snowflake  
  PIVOT：[https://docs.snowflake.com/ja/sql-reference/constructs/pivot.html](https://docs.snowflake.com/ja/sql-reference/constructs/pivot.html)  
  UNPIVOT：[https://docs.snowflake.com/ja/sql-reference/constructs/unpivot.html](https://docs.snowflake.com/ja/sql-reference/constructs/unpivot.html)

これまでのRedshiftでのPIVOT・UNPIVOTは一般的に知られているように

- PIVOT  
  CASE式を利用して対象を各カラムに抽出した後に重複をなくす
- UNPIVOT  
  UNION ALLを利用し各カラムを1カラムに連結させる  
  もしくは対象カラム数分のレコード数を持ったテーブルを作成しCROSS JOINで結合しCASE式で各カラムを指定し抽出

といったやり方でした。  
ただこれが結構手間でもあったので他のDWHを触るとRedshiftではこの機能が無いんだよな～便利だな～と嘆いていました。

## AWS公式ドキュメントが…

執筆している2022/01/27時点でRedshiftのFROM句についての[日本語版ドキュメント](https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_FROM_clause30.html)では  
![aws-document-from](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-12-47-35-16-PM.png)

特にPIVOTについての記載はないのですが[英語版ドキュメント](https://docs.aws.amazon.com/redshift/latest/dg/r_FROM_clause30.html)に切り替えると…![aws-document-from-eng](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-12-49-12-35-PM.png)  
PIVOTとUNPIVOTがあります！おそらくそのうち日本語版でも更新されると思います。

※2022/02/28 追記  
2022/02/23にPIVOT・UNPIVOTについての[アナウンス](https://aws.amazon.com/jp/about-aws/whats-new/2022/02/amazon-redshift-support-pivot-unpivot-sql-operators/)があったようです。  
日本語ドキュメントも対応したようなのでご確認ください！

また色々確認しましたがこの機能についてアナウンスがなさそうでしてサイレント追加的なものでしょうか…？

実は昨年10月頃にエイリアスにUNPIVOTという名称を使っていたクエリが突然使えなくなり、12月ごろにはPIVOTという名称が使えなくなっていたことがあり、もしかすると使えるようになったのではと思っても調べても何も出てこない…ということがあったんですがやはり追加されていたんだなと確信を得ることができました。

兎にも角にもとりあえず実際に触ってみましょう！

## 実際に触って確認してみる

今回は[PIVOT and UNPIVOT examples](https://docs.aws.amazon.com/redshift/latest/dg/r_FROM_clause-pivot-unpivot-examples.html)のテーブルサンプルを使って確認してみます。

### PIVOT

まずはテーブルを作成します。

```
CREATE TABLE part ( partname varchar, manufacturer varchar, quality int, price decimal(12, 2) );INSERT INTO part VALUES ('P1', 'M1', 2, 10.00);INSERT INTO part VALUES ('P1', 'M2', NULL, 9.00);INSERT INTO part VALUES ('P1', 'M3', 1, 12.00);INSERT INTO part VALUES ('P2', 'M1', 1, 2.50);INSERT INTO part VALUES ('P2', 'M2', 2, 3.75);INSERT INTO part VALUES ('P2', 'M3', NULL, 1.90);INSERT INTO part VALUES ('P3', 'M1', NULL, 7.50);INSERT INTO part VALUES ('P3', 'M2', 1, 15.20);INSERT INTO part VALUES ('P3', 'M3', NULL, 11.80);
```

テーブルの中身は以下になります。  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-01-21-28-19-PM.png)

試しにpartnameをカラムにpriceを値としてPIVOTしてみます。  
FROM句の後にPIVOTパラメーターを使う形になります。

```
SELECT * FROM(SELECT partname, manufacturer, price FROM part)PIVOT ( sum(price) FOR partname IN ('P1', 'P2', 'P3') );
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-01-30-54-72-PM.png)  
簡単ですね！いちいちCASE式を書かないでいいのは助かります！

sum(price)と集計している形になっていますがmanufacturerを軸にしているので実際は集計していない形になります。

集計関数を使うのでもちろん集計してPIVOTをすることができるようです。  
試しにmanufacturer毎のpriceの平均を出してみます。

```
SELECT *FROM (SELECT manufacturer, price FROM part) PIVOT (avg(price) FOR manufacturer IN ('M1', 'M2', 'M3') );
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-01-40-43-68-PM.png)

またドキュメントによると以下のような暗黙列の集計やINでNULLを指定することも可能だそうです。

```
SELECT * FROM (SELECT quality, manufacturer FROM part) PIVOT ( count(*) FOR quality IN (1, 2, NULL) );
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-02-09-38-58-PM.png)  
普通の集計ではM3の「2」という値は存在しないのでNULLになるものですが  
この集計の特性としてレコードがない場合は0を返すようです。

またPIVOTされるカラム名はエイリアスとして別名を付けることができるようです。

```
SELECT * FROM 
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-02-39-50-84-PM.png)

### UNPIVOT

続いてUNPIVOTを見ていきます。  
データサンプルは以下になります。

```
CREATE TABLE count_by_color (quality varchar, red int, green int, blue int);INSERT INTO count_by_color VALUES ('high', 15, 20, 7);INSERT INTO count_by_color VALUES ('normal', 35, NULL, 40);INSERT INTO count_by_color VALUES ('low', 10, 23, NULL);
```

テーブルの中身は以下になります。  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-02-23-58-99-PM.png)

早速、UNPIVOTを確認しましょう。

```
SELECT * FROM count_by_colorUNPIVOT (cnt FOR color IN (red, green, blue));
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-02-35-49-13-PM.png)  
シンプルなクエリでいいですね～！

カラーだけをUNPIVOTする場合は以下になります。

```
SELECT * FROM (SELECT red, green, blue FROM count_by_color)UNPIVOT ( cnt FOR color IN (red, green, blue));
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-02-25-31-73-PM.png)

NULL以外の値が縦持ちになりました。  
NULLも含めて縦持ちにする場合はINCLUDE NULLSを使います。

```
SELECT * FROM ( SELECT red, green, blue FROM count_by_color ) UNPIVOT INCLUDE NULLS ( cnt FOR color IN (red, green, blue));
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-02-28-12-19-PM.png)

またINで指定する名称を別名に変更することもできるようです。

```
SELECT * FROM count_by_color UNPIVOT ( cnt FOR color IN (red AS r, green AS g, blue AS b) );
```

結果  
![](https://knowledge.insight-lab.co.jp/hubfs/image-png-Jan-27-2022-02-43-11-25-PM.png)

## 終わりに

Redshiftに新規追加？されていたPIVOT・UNPIVOTについて触ってみました。  
この機能の追加でRedshiftでもテーブルの縦持ち・横持変換が扱いやすくなったのではないでしょうか？  
これまでRedshiftでPIVOT・UNPIVOTを触っていた方、これから触ってみる方はぜひ触ってみてください！

BIツールを体験してみませんか？

INSIGHT LABでは、BIツールの無料紹介セミナー（動画）を配信しています。初めてBIツールをご利用される方を対象に、BIツールの概要や、複数あるBIツールの違いについて分かりやすくご説明いたします。

[![セミナー一覧はこちら](https://hubspot-no-cache-na2-prod.s3.amazonaws.com/cta/default/5935783/28023fdf-0a76-48bf-9815-43744ce7a2b2.png)](https://hubspot-cta-redirect-na2-prod.s3.amazonaws.com/cta/redirect/5935783/28023fdf-0a76-48bf-9815-43744ce7a2b2)

- [Tweet](https://twitter.com/share)

![BI LAB編集室](https://knowledge.insight-lab.co.jp/hubfs/image%20(3)-3.png)

#### 執筆者 [BI LAB編集室](https://knowledge.insight-lab.co.jp/bi/author/bi-lab)

BI LAB（データ活用研究所）編集室です。 BI、AI、DWHなどデータ活用に関するトレンドやニュースやコラムをほぼ毎日配信しています。押さえておきたい基本知識から、最新ニュース、事例インタビューやお役立ち情報・セミナーレポートまで、データ活用の専門家ならではの視点と情報量でお届けします。

###### [前の投稿](https://knowledge.insight-lab.co.jp/bi/news/seminar-bbreak-powerbi)

[![ビーブレイクシステムズがBIツール活用セミナーを開催へ](https://knowledge.insight-lab.co.jp/hubfs/Google%20Drive%20Integration/110_%E3%83%93%E3%83%BC%E3%83%96%E3%83%AC%E3%82%A4%E3%82%AF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%BA%E3%81%8CBI%E3%83%84%E3%83%BC%E3%83%AB%E6%B4%BB%E7%94%A8%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC%E3%82%92%E9%96%8B%E5%82%AC%E3%81%B8.png)](https://knowledge.insight-lab.co.jp/bi/news/seminar-bbreak-powerbi)

###### [ビーブレイクシステムズがBIツール活用セミナーを開催へ](https://knowledge.insight-lab.co.jp/bi/news/seminar-bbreak-powerbi)

###### [次の投稿](https://knowledge.insight-lab.co.jp/bi/news/fbp-partners-data-integration-dataddo-start)

[![FBP Partners、データ統合サービス「Dataddo」の提供を開始](https://knowledge.insight-lab.co.jp/hubfs/Google%20Drive%20Integration/119_FBP%20Partners%E3%80%81%E3%83%87%E3%83%BC%E3%82%BF%E7%B5%B1%E5%90%88%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%80%8CDataddo%E3%80%8D%E3%81%AE%E6%8F%90%E4%BE%9B%E3%82%92%E9%96%8B%E5%A7%8B.png)](https://knowledge.insight-lab.co.jp/bi/news/fbp-partners-data-integration-dataddo-start)

###### [FBP Partners、データ統合サービス「Dataddo」の提供を開始](https://knowledge.insight-lab.co.jp/bi/news/fbp-partners-data-integration-dataddo-start)

 

## 最新記事

<https://knowledge.insight-lab.co.jp/bi/databricks-update-june>

###### 5 分で読むことができます。

#### [【2026年6月版】ビジネス視点で紐解くDatabricks最新機能！現場のデータ運用が劇的に楽になるポイント解説](https://knowledge.insight-lab.co.jp/bi/databricks-update-june)

###### 2026年 7月 5日

<https://knowledge.insight-lab.co.jp/bi/ai-reality-tour-tokyo-2026>

###### 2 分で読むことができます。

#### [AI Reality Tour Tokyo 2026にブース出展いたします！](https://knowledge.insight-lab.co.jp/bi/ai-reality-tour-tokyo-2026)

###### 2026年 6月 8日

<https://knowledge.insight-lab.co.jp/bi/semantic-layer-game-kpi>

###### 7 分で読むことができます。

#### [ゲーム運営でのデータ分析を次のステージへ。KPI共通化と定義管理の効率化を実現する「セマンティックレイヤー」の重要性](https://knowledge.insight-lab.co.jp/bi/semantic-layer-game-kpi)

###### 2026年 5月 29日

##### サービス

サービス

- [DATA-CONPASS](https://service.insight-lab.co.jp/data-conpass)
- [DATA-TERASU](https://service.insight-lab.co.jp/data-terasu)
- [DATA-ANALYTICS-DOJO](https://service.insight-lab.co.jp/data-analytics-dojo)
- [Data Knowledge Library](https://knowledge.insight-lab.co.jp/)
- [セミナーアーカイブ](https://download.insight-lab.co.jp/seminar-archive)

##### データ活用ツール

データ活用ツール

- [Snowflake](https://service.insight-lab.co.jp/snowflake)
- [dbt](https://service.insight-lab.co.jp/dbt)
- [TROCCO](https://service.insight-lab.co.jp/TROCCO)
- [Qlik](https://service.insight-lab.co.jp/Qlik)
- [Vizlib](https://service.insight-lab.co.jp/Vizlib)
- [Sisense](https://service.insight-lab.co.jp/sisense)
- [Tableau](https://service.insight-lab.co.jp/Tableau)

##### 実績・事例

実績・事例

- [トヨタ自動車北海道](https://download.insight-lab.co.jp/bi/case-studies/toyota)
- [テレビ東京コミュニケーションズ](https://download.insight-lab.co.jp/bi/case-studies/tv-tokyo)
- [プラントフォーム](https://download.insight-lab.co.jp/bi/case-studies/plantform)
- [スタイルブレッド](https://download.insight-lab.co.jp/ja/bi/case-studies/style-bread)
- [協和企画](https://download.insight-lab.co.jp/bi/case-studies/kk)
- [Jマテ．カッパープロダクツ](https://listen-web.com/story/isao-tooyama2/)

##### 運営会社

運営会社

- [会社概要](https://insight-lab.co.jp/about/)
- [サイト運営責任者](https://twitter.com/Kajiwara81)
- [お問い合わせ](https://contact.insight-lab.co.jp/main)

[![Logo_yoko_C+W-1](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/Logo_yoko_C+W-1.png?width=500&height=133&name=Logo_yoko_C+W-1.png "Logo_yoko_C+W-1")](https://www.insight-lab.co.jp/)

- [個人情報保護方針/個人情報の取り扱いについて](https://insight-lab.co.jp/privacy/)

Copyright © ＩＮＳＩＧＨＴ ＬＡＢ, Inc．All Rights Reserved.

<https://twitter.com/INSIGHTLAB_INC><https://www.youtube.com/channel/UCOKNKiO4uuza4NioSZpBMhg/featured>

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "BI LAB編集室",
    "url" : "https://knowledge.insight-lab.co.jp/bi/author/bi-lab"
  },
  "dateModified" : "2023-07-03T07:05:37.687Z",
  "datePublished" : "2022-01-28T04:16:07.000Z",
  "headline" : "【Redshift】PIVOT・UNPIVOT機能がいつの間にか追加されていたので触ってみる",
  "image" : [ "https://knowledge.insight-lab.co.jp/hubfs/redshift-pivot.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://knowledge.insight-lab.co.jp/bi/redshift-new-pivot-unpivot",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://knowledge.insight-lab.co.jp/hubfs/Logo_tate-2.png"
    },
    "name" : "INSIGHT LAB"
  }
}
```