売上表に店舗ごとの商品設定を追加する場合、店舗だけでも商品だけでも相手の行を特定できません。Fione v2の開発版のJoinでは、店舗IDと商品IDのように、複数列がそろった行を対応付けられます。
二つの列を同じ順番で指定する
売上表を土台にしてJoinを実行します。相手のデータセットでは店舗IDが shop_id、商品IDが sku で、追加したい列が shelf_price の場合は、次のように設定します。 42 は相手のデータセットIDの例です。
{
"other_dataset_id": 42,
"keys": ["store_id", "product_id"],
"other_keys": ["shop_id", "sku"],
"columns": ["shelf_price"]
}
keys と other_keys は同じ列数とし、対応する順番をそろえます。相手の列名と順番が同じなら other_keys は省略できます。単一列では従来の key と other_key を使えます。key と keys は併用できません。columns の初期値は空で、相手のキー以外の列が追加対象になります。
相手の表で重複する組み合わせを確認する
左結合なので、土台の行はすべて残ります。いずれかのキーが欠損している行や、相手側に一致する組み合わせがない行では、追加列が空欄です。相手側に同じ店舗・商品の組み合わせが複数あると、初期値の summarize: false ではジョブがエラーになります。入荷履歴のように複数行をまとめたい場合は summarize: true にすると、組み合わせごとの行数や数値列の平均・最小・最大・合計を追加できます。
設定済みのアシスタントに両側の列を明示して提案カードを作ることもできます。「売上表の store_id, product_id と商品設定の shop_id, sku で結合」と指定し、実行前にカードの列順を確認します。テーブルのつながりを自動探索する find_table_links は単一列を調べるため、組み合わせは利用者が指定します。
関連PR
- Joinモジュールと提案カードで複数のキーを指定 Fione #72