
表題の通り、クロス集計されたデータを元に戻す方法を探しています。
現在あるシステムにおいて出力されるデータが以下の様な形式だったとします。
(このデータ出力形式は変更が出来ないものとします。)
■元のデータ形式
時刻, A, B, C, D,
1:00, 1, 2, 3, 4,
2:00, 2, 3, 4, 5,
3:00, 3, 4, 5, 6,
4:00, 4, 5, 6, 7,
....
■目標とするデータ形式
時刻, 分類, 値,
1:00, A, 1,
1:00, B, 2,
1:00, C, 3,
1:00, D, 4,
2:00, A, 2,
2:00, B, 3,
2:00, C, 4,
2:00, D, 5,
...
※フォントがずれるので見辛いかもしれませんがご理解願います。
なお時刻はここでは1:00~24:00までの24個
分類項目は特定の個数
(ここではx個あるとします)
データを保存、集計するうえで、クロス集計されているデータ形式は非常に使いにくく、
何とかして目標とする形に変換したいと考えております。
どなたか良い変換方法をご存知でしょうか?
またデータベースの基本的な考え方として、やはりテーブルのデータ構造は
今回目標とする様な構造が良いのでしょうか?
一応ある程度データベースを知っている人の意見で今回の変換を考えたのですが、
処理をする上で理想的な構造とはどういったものでしょうか?
No.2ベストアンサー
- 回答日時:
時刻と分類の組み合わせがユニークなのであれば
ユニオンクエリで組みかえられます
select 時刻,"A" as 分類,[A} as 値
from 元のテーブル
union all
select 時刻,"B" as 分類,[B} as 値
from 元のテーブル
union all
・
・
・
select 時刻,"X" as 分類,[X} as 値
from 元のテーブル
>データベースの基本的な考え方として、やはりテーブルのデータ構造は
>今回目標とする様な構造が良いのでしょうか?
そのとおりです
ご返答いただきありがとうございます!ユニオンクエリ、聞いたことはありましたが実際に使ったことはありませんでした。
なんとか目標とする形に変換することが出来ました!ありがとうございました。
No.1
- 回答日時:
こんにちは。
貴方が書かれたサンプルデータを見ると、「時刻」ごと、「分類」ごとに1個のデーターしかないようですが、実際のデータもそのような構造なのですか。それであったら、実質的には集計というより、並び替えになっていると思います。
本当のクロス集計は、縦横の項目ごとに複数のデータを足し算しますので、足し算した結果が、「3」であっても、「値」1のデータが3個なのか、「値」3のデータが1個なのかを知るすべはありません。
では。
この回答への補足
反応いただきありがとうございます。
たしかに考えてみるとクロス集計というより並び替えされてクロス集計のような形になっている、が正しかったですね!
この並び替えを元に戻す方法を探しておりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このISAMでは、リンクテーブル・・
-
Oracleで上書きImportはできま...
-
Accessでデータシートに同じデ...
-
ビューのソートについて
-
left joinなどで結合対象のレコ...
-
Accessのテーブルデータを一気...
-
Access VBAからエクセルに出力...
-
アクセス レコードセットを更...
-
結合テーブルでINSERTする方法...
-
仕事のミス:本番データの削除→...
-
Access2002 レコード入力時に更...
-
データベースのテーブル設計に...
-
マテリアライズドビューとスナ...
-
テーブル作成クエリ
-
テーブルで一番古いレコードだ...
-
sqlplusで表示が変なので、出力...
-
降順で並び替えて昇順で受け取...
-
テーブルリンク リンク元を知...
-
条件付DELEATE文について
-
「テーブルに座って……」という...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Oracleで上書きImportはできま...
-
ビューのソートについて
-
このISAMでは、リンクテーブル・・
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
Accessのテーブルデータを一気...
-
SQLです教えてくださいお願いし...
-
accessでレコード更新直後の反...
-
結合テーブルでINSERTする方法...
-
ODBC接続で新しいレコードを追...
-
マテリアライズドビューとスナ...
-
ORA-01401が表示され、データが...
-
Accessでの稼働日数計算の方法
-
処理の途中で停止させ、再開さ...
-
「クリップボードにコピーされ...
-
SQL文の結合(一対多)がわから...
-
構文エラー : 演算子がありませ...
-
Accessのインポートについて(上...
-
テーブル作成について
おすすめ情報