| 日付 | 売上 |
|---|---|
| 2017-03-10 | 10,500 |
| 2017-03-12 | 5,470 |
| 2017-03-18 | 20,100 |
このようなorder_tableというテーブルがあったとして、これを
| 日付 | 2017-03-10 | 2017-03-12 | 2017-03-18 |
|---|---|---|---|
| 売上 | 10,500 | 5,470 | 20,100 |
こうする方法を考えます。
SQLでは縦並びの情報が日付と数字と違うとエラーなので、売上額だけ横に並べてみます。
カラム名もダイナミックに変える方法があれば教えてください。
SQLでは縦並びのデータを横並びにする方法はいくつかあるけど、
SELECT
SUBSTRING_INDEX(GROUP_CONCAT(売上 ORDER BY 日付), ',', 1),
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(売上 ORDER BY 日付), ',', 2), ',', -1),
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(売上 ORDER BY 日付), ',', 3), ',', -1)
FROM
order_table
各カラム内でデータを縦持ちテーブル内の任意のデータに沿って並べ、その中のn番目のデータ(nは自由に指定できる)を表示させることが出来ます。
イメージ的にカラムがスロットルになったような感じです。
これでSQLが2次元から3次元になります。
python を始めてからインデックスの考え方に慣れたけどこれを書いた一年前は初めてで新鮮でした