TECH BLOG

MENU

オンプレクラウド

Dr.Sum

Dr.Sum

エクセルなどでデータを管理している場合に、例えば店舗ごとの売り上げが年度が増えるごとに横に伸びている場合や、アンケート項目が増えるごとに横に伸びることがよくあります。このようなデータ構造を横持ちと言います。今回はPIVOT関数とUNPIVOT関数を使用して横持ちのデータを縦持ちのデータに変換していきます。

なお、Dr.Sumではマウス操作のみで簡単に横持ち⇔縦持ちを変換する機能を持っています。詳細は下記の記事をご覧ください。

 

データを縦持ちにするメリット

データベース設計をする際の「横持ち」と「縦持ち」について、以下のようなメリットとデメリットがあります。

横持ち
 メリット
  ・1レコードに必要な情報が収まるので、見やすい、データ化しやすい(アンケートなど)、検索しやすい
  ・大量データを処理しやすい
 デメリット
  ・項目を追加する場合、テーブル構造の修正が必要
  (例)横持ちデータに2022年度のA店のデータを追加する場合、2022年度のカラムを追加する必要がある縦持ち
 メリット
  ・データが正規化されているため扱いやすい
  ・項目が追加された場合は行の追加のみで、テーブル構造の修正が必要ない
  (例)縦持ちデータに2022年度のA店のデータを追加する場合、2022年度のA店のデータを準備するのみ

 デメリット
  ・1つの情報が複数レコードに分かれるため、横持ちより量が多く、縦に長いデータになる

例えば、連携元のシステムは横持ちのデータとして保持しているが、Dr.Sum では縦持ちのデータとして扱いたい場合は、
Dr.Sum にデータを取り込んだ後にデータ変換(横持ち⇒縦持ち)が必要になります。

ここではデータ変換(横持ち⇔縦持ち)の必要が生じた場合の対応方法について紹介します。
※Dr.Sum Ver. 5.5 の機能を利用しています。Dr.Sum Ver. 5.5 より前のバージョンでは実現できませんのでご注意ください。

SQLの UNPIVOT関数 を使用する

横持ち⇒縦持ちへの変換はUNPIVOT関数を使用することで変換できます。
参考までに、UNPIVOT関数を使用したSQL文を掲載します。

SELECT
    *
FROM
    横持テーブル UNPIVOT(来客数 FOR 年度 IN(2019年度, 2020年度, 2021年度))
AS 縦持テーブル
;

 

SQLの PIVOT関数 を使用する

横持ち⇒縦持ちへの変換はPIVOT関数を使用することで変換できます。

参考までに、UNPIVOT関数を使用したSQL文を掲載します。

SELECT
    *
FROM
    縦持テーブル PIVOT(SUM(来客数) FOR 年度 IN(2019 as 2019年度, 2020 as 2020年度, 2021 as 2021年度))
AS 横持テーブル;

「横持ち」と「縦持ち」のどちらが最適かは連携するシステムによって異なってくるで、ぜひデータ変換(横持ち⇔縦持ち)を活用してください!

この記事にリアクションしてみませんか?

What do you think of this post?
  • 分かりやすい (6)
  • 問題が解決した (1)
評価いただいてありがとうございます!

宇根 昌和

MotionBoard Dr.Sum
プロフィールへ >

新卒でウイングアーク1stへ入社、プリセールス活動を行っています。Pythonをベースに様々なツールからデータをDr.Sumへ集約しMotionBoardで可視化する仕組みを作ったり、Web APIを使ったデータ蓄積ノウハウをテーマにイベント登壇したりしています。Dr.Sum及びMotionBoardを中心とした役立つ情報を発信していきます!

Related article

Related article関連記事

Pick up

Pick upおすすめ記事

【脱Excel】MotionBoardの入力機能で業務アプリをつくる

公開:2024.08.05
更新:2024.08.05

分かりやすい

2

解決した

0
  • データ入力
  • デザイン
  • コンテナ

MotionBoard

【まとめ】SVF Cloud帳票をinvoiceAgentに連携する方法

公開:2024.04.18
更新:2024.08.07

分かりやすい

2

解決した

2
  • 帳票作成・出力
  • システム連携
  • 電帳法
  • 文書定義
  • 処理定義

SVF

Dr.Sum Copilotをインストールしてみた【OpenAI】

公開:2024.04.05
更新:2024.04.18

分かりやすい

2

解決した

0
  • Copilot

Dr.Sum

Ranking

Rankingランキング

1

Excelのデータを加工したい。~変換(横持ち⇔縦持ち)について~

公開:2021.01.19
更新:2024.05.08

分かりやすい

6

解決した

1
  • データ取り込み
  • データ加工

Dr.Sum

2

【あの頃に戻りたい】バックアップから任意のテーブルだけを戻す方法

公開:2023.11.07
更新:2023.11.20

分かりやすい

1

解決した

0
  • 設定

Dr.Sum

3

【DELETE-INSERT】特定期間のデータのみ洗い替えたい!【手動編】

公開:2024.01.10
更新:2024.05.08

分かりやすい

0

解決した

0
  • データ取り込み
  • SQL

Dr.Sum

Info

Information

ウイングアーク1stからのお知らせ

int(59)