本章では、初級コマンドで用いた2002年のデータを用いて、下図に示すような「顧客の初回来店日、最終来店日、来店期間」の帳票を作成する。
顧客の初回来店日、最終来店日、来店期間チュートリアル
: |
初回来店日とは、利用するデータにおいて、各顧客が最初に来店した日付のことで、最終来店日とは、利用するデータにおいて、各顧客が最後に来店した日付のことである。来店期間とは、初回来店日から最終来店日までの日数である。
1年間のデータであっても、その間に、多くの新しい顧客が登録されるであろうし、またある日を境にその店に全く来店しなくなるケースもあるであろう。そこで、初回来店日と最終来店日を求めることによって、どのくらいの顧客がどのような時に店に来店するようになり、またどのような時に店を去っていくかを知ることができる。さらに来店期間を求めることによって、初回来店日や最終来店日がいつかに限らず、その店に顧客として来店した期間の少ない顧客を知ることができる。
上図の帳票の作成においては、これまでに学習したコマンドを組み合わせることによって作成することができる。まずは、次に示す回答見ずに、各自で、入力データから、上図の帳票を作成するために、コマンドをどのように組み合わせて実行すればよいか(処理の流れ)を考えてもらいたい。
回答:処理の流れ
このような少し複雑な帳票を考えるときは、たとえ処理の効率が下がろうとも、出力項目を一つづつ作成し、最後に結合するように考えるべきである。
上記の処理の流れをスクリプト化したものを以下に示しておくが、回答を見る前に各自でチャレンジしてもらいたい。
#!/bin/bash xtcut -f 顧客,日付 -i /mnt/h00/tutorial/dat.xt | xtdelnul -f 顧客 | xtagg -k 顧客 -f 日付:初回来店日 -c min >xxfirst xtcut -f 顧客,日付 -i /mnt/h00/tutorial/dat.xt | xtdelnul -f 顧客 | xtagg -k 顧客 -f 日付:最終来店日 -c max >xxlast xtjoin -k 顧客 -f 最終来店日 -m xxlast -i xxfirst | xtcal -c 'day($最終来店日,$初回来店日)' -a 来店期間 | xtheader -l "顧客の初回来店日,最終来店日,来店期間" -c "チュートリアル" -o visitdate.xt |
実行結果は各自で確認してもらいたい。
次のようなデータを作成しよう。スクリプト名及び結果ファイル名は表に示されたものを使おう。
帳票名 | スクリプト名 | 結果ファイル(xt) | 結果ファイル(html) |
初回来店年月別人数 | visitdate1.sh | visitdate1.xt | visitdate1.html |
最終来店年月別人数 | visitdate2.sh | visitdate2.xt | visitdate2.html |