本章では、初級コマンドで用いた1996年1月のデータを用いて、下図に示すような「会員販売率」の帳票を作成する。
会員販売率チュートリアル初級シナリオ編
|
会員販売率とは、全顧客の売上に占める会員の売上の率のことである。会員より一見の顧客が多ければ会員販売率は下がる。一概には言えないが、優良な店は、一度会員を獲得すれば、その会員を大事にし、会員販売率が上がるかもしれない。しかし逆に、あまりにも会員率が高すぎると、ある特定の顧客にしか魅力のない店になってしまっているかもしれない。いずれにしても、会員販売率は、店の評価に使われる一つの指標として利用できる。
会員販売率にはさまざまな数値属性を利用して求めることができる。代表的なものとしては、「購入数量」「購入金額」「粗利金額」「来店回数」などがある。ここでは、購入数量における会員販売率、すなわち、全顧客の購買数量合計に占める会員の購買数量合計の率を求めることにする。
回答:処理の流れ
ここで「日付から年月を抜き出すためのコマンドxtsubstrついて説明する。xtsubstr は-fで指定した項目について、-Rで指定した範囲(-Rの指定の仕方はxtbestのチュートリアルを参照)にある文字列を抜き出し、元の項目をその抜き出された文字列で置換する。MUSASHIで日付は"YYYYMMDD"の書式で表されているので、年と月だけが必要となる場合は、日付文字列の1文字目から6文字目までを抜き出せばよい。コマンドで書くと「xtsubstr
-f 日付 -R 1_6」となる。
なお、抜き出した文字列で元の項目を置換するのではなく、新しい項目として出力したい場合は、「-A」パラメータをつける。
以上の説明で、商品売上数量ベスト20を求めるスクリプトを書く準備が整った。以下にその回答を示すが、回答を見る前に各自でチャレンジしてもらいたい。
#/bin/bash #=============================================================== # MUSASHI bash script #=============================================================== #---- タイトル title="会員販売率" #---- コメント comment="チュートリアル初級シナリオ編" #---- 各種変数(適宜修正すること) inPath="/mnt/h00/prm/tutorial" #--------------------------------------------------------------- # コマンド #--------------------------------------------------------------- #全体の月別数量合計を計算する xtcat -i $inPath/'dat*.xt.gz' | xtcut -f 日付,数量 | xtsubstr -f 日付:月 -R 1_6 | xtagg -k 月 -f 数量:全体数量合計 -c sum -o xxall #会員の月別数量合計を計算する xtcat -i $inPath/'dat*.xt.gz' | xtdelnul -f 顧客 | xtcut -f 日付,数量 | xtsubstr -f 日付:月 -R 1_6 | xtagg -k 月 -f 数量:会員数量合計 -c sum -o xxcust #全体と会員の月別数量合計を結合し、会員販売率を計算する xtjoin -k 月 -m xxcust -f 会員数量合計 -i xxall | xtcal -c 'round((($会員数量合計/$全体数量合計)*100),0.01)' -a 会員販売率 | xtcut -f 月,会員販売率 | xtheader -l "$title" -c "$comment" -o custratio.xt #=============================================================== |
実行結果は各自で確認してもらいたい。