このようなデータから、複数ブランドを購入しているユーザーが何人いるか?を抽出したいです。
データをピポットしてカウントだとデータ量が多く集計が困難な状況です。
いい方法ご存知の方いらっしゃいましたら教えてくださいませ。
テーブルを横でもたない方法も考えてみました。
データセットをは下のようなものを想定しています。
こちらのDatasetを添付ファイルのようなETLで加工すると
下のようなデータセットができるので
こちらを使ってカードを作ると
下のようなカードが作成できます。
※UU数はBeast Modeで「=COUNT(DISTINCT `ユーザーID`)」で作成しています。
これは例えばBを購入したユーザーは3人いて、Bを合計3千円購入しており
B(基準BRAND)を購入し、かつB(基準BRAND)以外を購入したユーザーが2人いて合計4千円を
購入しているという意味です。
ここからBのみ購入ユーザーは3人-2人で1人ということがわかります。
こちらもご参考にしてください。
いろいろやり方があると思いますが、こんなETLを作成してはいかがでしょうか?
入力Dataset
↓
①グループ化:ユーザーごとに各BRANDを何回購入したか算出
識別する列:ユーザーID、BRAND
新しい集計列:日付のカウント
②グループ化:ユーザーごとにいくつのBRANDを購入したか算出
識別する列:ユーザーID
新しい集計列:BRANDのカウント
③グループ化:購入したBRAND個数別にユーザー数を算出
識別する列:BRANDのカウント
新しい集計列:ユーザーIDのカウント
④Dataset出力
グループ化を3回行うことでブランドの購入種類ごとにユーザー数が
算出できると思います。
お試しください。
アドバイスありがとうございます。
どうもイメージどおり行かず・・・
イメージとしてはこのデータから任意の期間に
ブランドAを買っているユーザー(IDカウント)・・○名
ブランドAと他のブランドを買っているユーザー・・・○名
というデータが出ないだろうかと模索しています。
更にいわゆる会員ランク、合計購買金額紐付かせられるとベストなのですが・・・
ですので元データでいうと下記のようなイメージです(こちらを先に出すべきでした。申し訳ございません)
を
こういった形式で抽出というイメージです。
こんにちは。
テーブルを横持ちにしては如何でしょうか。
イメージとしては↓の感じです。
対象データにフラグ設定すれば、ビーストモードで集計可能かと。
ビーストモード 例)
SUM(DISTINCT CASE WHEN `会員ランク` = 'ゴールド' AND `フラグ`= '1' THEN `金額` ELSE 0 END)