SELECT id, week, SUM(quantity) AS quantity, SUM(price) AS price FROM dataset.table ORDER BY 1, 2
上記の、week項目はstring型のため、order by すると以下のように並び替えられてしまうため、BIツールなどでも微妙な並びになる。
id | week | quantity | price |
---|---|---|---|
A01 | 土 | 100 | 100000 |
A01 | 日 | 200 | 200000 |
A01 | 月 | 300 | 300000 |
A01 | 木 | 400 | 400000 |
A01 | 水 | 500 | 500000 |
A01 | 火 | 600 | 600000 |
A01 | 金 | 700 | 700000 |
あんまり綺麗ではないが、以下のクエリで並び替えの対応を行う。
SELECT id, week, SUM(quantity) AS quantity, SUM(price) AS price FROM dataset.table ORDER BY 1, -- 並びを曜日順にする為のコード CASE WHEN week = '日' THEN 1 WHEN week = '月' THEN 2 WHEN week = '火' THEN 3 WHEN week = '水' THEN 4 WHEN week = '木' THEN 5 WHEN week = '金' THEN 6 WHEN week = '土' THEN 7 END
string型のweek項目に擬似的に数値情報を与えてorder by することで曜日を綺麗に並び替える
id | week | quantity | price |
---|---|---|---|
A01 | 日 | 200 | 200000 |
A01 | 月 | 300 | 300000 |
A01 | 火 | 600 | 600000 |
A01 | 水 | 500 | 500000 |
A01 | 木 | 400 | 400000 |
A01 | 金 | 700 | 700000 |
A01 | 土 | 100 | 100000 |