このページは解答編です。
↓ネ
↓タ
↓バ
↓レ
↓防
↓止
答えと解説
設問はこちらでした。
P-027: レシート明細データ(receipt.csv)に対し、店舗コード(store_cd)ごとに売上金額(amount)の平均を計算し、降順でTOP5を表示せよ。
解答ワークフローは以下のようになります。
今回は、店舗コードごとの売上金額の平均を計算後、降順でTop5を取得する、とのことですが、今まで行ってきた内容で十分解ける問題です。基本的には、以下のように解いていきます。
- 型を適切に変更する
- 店舗コードごとにグループ化して平均を取る
- 並べ替える
- 5件取得する
まず、型を変更しましょう。基本的にセレクトツールで行います。なお、amountはInt16型になります。ついでに不要なフィールドも削除しておきます。
次に集計ツールを使って、店舗コードごとにグループ化して平均を取りましょう。
次にソートツールで並べ替えます。単純に先ほど取得したamountの平均値(ここでは、「Avg_amount」としています。)に対して、降順でソートします。
最後に、サンプリングツールで先頭から5件取得します。つまり、N=5とします。
もちろん、レコード選択ツールで1-5レコードを取得しても問題ありません。
まとめ
今回は、集計の問題でした。基本的に集計後は並べ替えたり、TopNを取ったりということが多いかと思います。よく使う手法ですので慣れておきましょう。
コメント