SELECT
  id,
  week,
  SUM(quantity) AS quantity,
  SUM(price) AS price
FROM
  dataset.table
ORDER BY
  1, 2

上記の、week項目はstring型のため、order by すると以下のように並び替えられてしまうため、BIツールなどでも微妙な並びになる。

idweekquantityprice
A01100100000
A01200200000
A01300300000
A01400400000
A01500500000
A01600600000
A01700700000

あんまり綺麗ではないが、以下のクエリで並び替えの対応を行う。

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 することで曜日を綺麗に並び替える

idweekquantityprice
A01200200000
A01300300000
A01600600000
A01500500000
A01400400000
A01700700000
A01100100000
おすすめの記事