データ
テーブルの作り方で悩む。
普通に考えれば
場所 | 最高気温 | 最低気温 | 湿度 | 雨量 |
LA | 20.0 | 10.0 | 40 | 3 |
北京 | 11.0 | 6.5 | 50 | 0 |
小岩 | 24.5 | 18.0 | 10 | 0 |
こんな感じになる。でも求められてる出力が
場所 | 項目 | 値 |
LA | 最高気温 | 20.0 |
LA | 最低気温 | 10.0 |
LA | 湿度 | 40 |
LA | 雨量 | 3 |
北京 | 最高気温 | 11.0 |
北京 | 最低気温 | 6.5 |
北京 | 湿度 | 50 |
北京 | 雨量 | 0 |
小岩 | 最高気温 | 24.5 |
小岩 | 最低気温 | 18.0 |
小岩 | 湿度 | 10 |
小岩 | 雨量 | 0 |
なもんで、どうしようかと。
- テーブルの時点で後者のように持っておく。主キーぐらいはつける。
- 前者のように持っておいて、SQLで何とか頑張って加工する。
- 前者のように持っておいて、SQLでざっくり加工してホスト言語で出力を調整する。
最初はしぶしぶ1にしたけど、なんとも気持ち悪いので2に。
それでもSQL未経験なので横のものを縦にするのがどうにもきれいにかけない。ビュー使ったりとかでしのいだけど、上手な人はどうやるんだろうか。
で、3に落ち着いた。データがまともなままなのと書きやすいのがいい。
もし仕様変更なんかがあったときいじる部分が分散してしまいそうなのがいやな点。あと、ホスト言語が使えないSQLオンリーな場合はやっぱり苦しそう。むずい。