前提・実現したいこと
ここに質問の内容を詳しく書いてください。
PostgreSQL 10.5を使用して、以下の集計を行いたいと考えております。
・User_id別に購入数の集計を行い、購入数の間隔別(10ずつ)にuser_idのcountを行いたいです。
またRedShiftでも同様の集計を行いたいと考えております。
集計対象データ内容:テーブル名_sampleData
user_id | 購入数 |
---|---|
1 | 5 |
35 | 3 |
16 | 22 |
78 | 36 |
376 | 105 |
6870 | 384 |
879 | 658 |
~~ | ~~ |
※データのレコード数は仮で1000としています。
出力イメージは、
購入数 | user_id_cnt |
---|---|
1~10 | 45 |
11~20 | 21 |
21~30 | 13 |
31~40 | 36 |
~~ | ~~ |
101~110 | 5 |
~~ | ~~ |
521~530 | 10 |
試したこと
SQL
1select 2 user_id 3 , 購入数 4 , case 5 when 購入数 = 0 then '0' 6 when 購入数 between 1 and 10 then '1~10' 7 when 購入数 between 11 and 20 then '11~20' 8 end "購入数の幅" 9from sampleData 10 11上記の様にcase式で判断すれば良いかと思いやってみましたが、 12条件式を100個以上入れるのは厳しいのでAccessのPartition関数 13のようなものを探したのですが、見つからず困っております・・・。