初級帳票編 年代別数量金額合計

本章では、初級コマンドで用いた1996年1月のデータを用いて、下図に示すような「年代別数量金額合計」の帳票を作成する。

出力結果

年代別数量金額合計

チュートリアル初級帳票編

年代 数量 金額
10 23 6515
20 537 329269
30 1662 851255
40 1400 634537
50 1086 555772
60 782 374586
70 217 101414
80 59 30428
90 10 5664

処理の流れ

 通常、会員制を採用している小売店では、顧客情報として誕生日を登録している。誕生日から年齢を求めるためには、いつを基準に年齢を求めるかを決めなければならない。通常、その方法には2つある。一つ目の方法は、各顧客が来店した日を基準にするものである。この方法により正確な年齢を求めることができるが、一方で、同じ顧客であっても誕生日の前後の購買で、集計される年代が変わってくる。二つ目の方法は、ある固定した日を基準に年齢を求めることにより、同じ顧客は必ず同じ年代に集計される。しかし長い期間(例えば10年間)のデータを使った年代別集計になると、31才の時の購買と40歳の時の購買が同じ年代に集計され問題となる。これらの二つの方法は目的に応じて使い分ければよいであろう。ここでは二つ目の方法を利用することにする。
 年代別に売上を集計することによって、どの年代層がどのように店に貢献しているかを観察することができる。数量や金額だけでなく、粗利や来店回数の属性によって集計するなど、より多面的に分析するのが一般的である。

 上図の帳票の作成においては、これまでに学習したコマンドを組み合わせることによって作成することができる。まずは、次に示す回答見ずに、各自で、入力データから、上図の帳票を作成するために、コマンドをどのように組み合わせて実行すればよいか(処理の流れ)を考えてもらいたい。

回答:処理の流れ

  1. 顧客もしくは生年月日がNULLである行を削除する
  2. 必要な項目「生年月日」「数量」「金額」を選択する
  3. 1996/01/01を基準日にして年齢を求め、10才刻みに年齢を切り捨て、「年代」項目を作成する
  4. 年代が10より下、もしくは90より上は省く
  5. 年代別に数量、金額を合計する
  6. 必要な項目、「年代」「数量」「金額」を選択する

スクリプト

以上の説明で、年代別数量金額合計を求めるスクリプトを書く準備が整った。以下にその回答を示すが、回答を見る前に各自でチャレンジしてもらいたい。

#/bin/bash
#===============================================================
# MUSASHI bash script
#===============================================================

#---- タイトル
title="顧客の年代別売上数量金額"

#---- コメント
comment="チュートリアル初級シナリオ編"

#---- 各種変数(適宜修正すること)
inPath="/mnt/h00/prm/tutorial"

#---------------------------------------------------------------
# コマンド
#---------------------------------------------------------------
xtdelnul -f 顧客,生年月日 -i $inPath/dat.xt.gz |
xtcut -f 生年月日,数量,金額 |
xtcal -c 'down(age("19960101",$生年月日),10)' -a 年代 |
xtsel -c '$年代>=10 && $年代<=90' |
xtagg -k 年代 -f 数量,金額 -c sum |
xtcut -f 年代,数量,金額 |
xtheader -l "$title" -c "$comment" -o agesale.xt
#===============================================================

実行結果は各自で確認してもらいたい。

練習課題