下記を参照にパレード図を作成したところ、パレード図自体は一発で作成できた。
Einstein Analyticsでパレート図を作る https://qiita.com/haneco/items/f601f43fdb0c840cc1f3 #Qiita
ただ、これだとグループ項目名のデータ数で集計されてしまう。
顧客毎の売上数値を集計して、それでパレード図を作成したかったので、最終的に下記になった。
q = load "データセット";
q = group q by 'グループ項目名';
q = foreach q generate
'グループ項目名',
sum(売上項目) as '集計', --売上の合計値を集計とする--
sum(sum(売上項目)) over([..] partition by all) as '合計',--全ての行の売上合計値を合計とする--
coalesce(sum(sum(売上項目)) over([.. -1] partition by all order by sum(売上項目) desc), 0) as '累積値';
--売上合計を該当行の一行前の合計値で取得
その際の並び順は売上合計値の降順。ただしnullの場合は0に変更する--
--sum(sum())を利用することで、グルーピングされていない項目での値集計に対するエラーを回避する--
q = foreach q generate
'グループ項目名',
'集計',
('累積値' + '集計') / ('合計' + '合計') * 2 * 100 as '比率の累計';
q = order q by '集計' desc;
q = limit q 2000;
ただsum(sum())のところ、本当に理由がこうなのかよくわからない。
分かる人いたら教えてください。