130-80 | データ編集・追加
店舗・製品分類ごとの売上金額について、順位を3位まで設定します。
※krewDataでは順位を設定する機能はありません。そのため、グループ化コマンドを利用して売上金額の最大値を取得し順位「1位」を設定、1位のレコードを除いた中から再度最大値を取得し順位「2位」を設定、といった処理を繰り返します。
入力アプリのフィールド構成
売上実績アプリ
- 各店舗の製品分類ごとの売上が登録されている
⇒店舗、製品分類ごとに1レコード存在している
1.店舗毎に売上金額が1位のレコードを特定する
- 入力アプリコマンドを追加し、「売上実績」アプリを指定する
・使用するフィールド:「店舗」「製品分類」「売上金額」 - グループ化コマンドを追加し、店舗毎の売上金額の最大値を取得する
1.グループ化する項目フィールドを選択:店舗
2.集計する値が保存されているフィールドを選択:売上金額
3.集計した値を保存するフィールド名を入力:売上金額
4.集計方法を選択:最大値 - 定数の追加コマンドを追加し、順位フィールドを作成し値に「1位」を設定する
- アプリ結合コマンドを追加し、集計元レコードと順位を設定したレコードを結合する
・結合方法:左外部結合
・結合キー:店舗(売上実績)=店舗(順位設定)
売上金額(売上実績)=売上金額(順位設定)
⇒店舗毎に売上金額が最大のレコードの順位に「1位」が設定された
店舗毎に売上金額が2位のレコードを特定する
- フィルタコマンドを追加し、「順位」フィールドが未設定のレコードのみに絞り込む
・順位=(等しい) 空白 - フィールド選択コマンドを追加し、以下のフィールドのみを選択する。
・対象フィールド:店舗、製品分類、売上金額 - グループ化コマンドを追加し、現在のレコードの中で売上金額の最大値を取得する
1.グループ化する項目フィールドを選択:店舗
2.集計する値が保存されているフィールドを選択:売上金額
3.集計した値を保存するフィールド名を入力:売上金額
4.集計方法を選択:最大値 - 定数の追加コマンドを追加し、順位フィールドの値に「2位」を設定する
- アプリ結合コマンドを追加し、集計元レコードと順位を設定したレコードを結合する
・結合方法:左外部結合
・結合キー:店舗(フィールド選択(2))=店舗(順位設定(2))
売上金額(フィールド選択(2))=売上金額(順位設定(2))
⇒店舗毎に売上金額が最大のレコードの順位に「2位」が設定された
店舗毎に売上金額が3位のレコードを特定する
※売上金額が2位のレコードを特定した時と同様の手順を行います。
手順を簡略化するため、既存のコマンドを複製します。
- フィルタコマンド~アプリ結合コマンドをドラッグして選択します
- 「複製」を選択します
- 複製したコマンドを「アプリ結合」の後に接続します
- 定数を追加コマンドの設定を開き、順位の値を「3位」に変更します
※3位以降も順位を設定する場合には、こちらの「コマンドの複製」~「順位変更」の処理を追加で行ってください。
順位が設定されたレコードを抽出する
- レコード結合コマンドを追加し、順位を設定した後のアプリ結合コマンドのレコードを結合する
結合方法:すべてのフィールドを含める - フィルタコマンドを追加して、「順位」が設定されているレコードのみ抽出する
順位 ≠(等しくない) 空白
3.フィールド選択コマンドを追加して、不要なフィールドを除外する
選択フィールド:店舗、製品分類、売上金額、順位
設定結果
店舗毎の売上金額上位3位のレコードに順位が設定された
サンプルファイルのダウンロードはこちら
https://download.krew.mescius.jp/study/krewdata-drill/basic/dt130-80rank.zip