こんにちは。
昨日質問させて頂いたものです。
私のサンプルが悪かったせいで正確な質問とならなかったので改めて質問させて頂きます。
ampleにある様にTransaction IDとItemのレコードがあるとします。
購入データみたいなものと考えて下さい。
Itemは象、カバ、犬があり、
一度のTransactionで複数購入する事が可能です。(Tran_idが同一のもの。レコードは購入Item毎に存在するのでTran_idは重複する場合があります)
複数購入した場合代表するアイテムを表記したいとして、
一度の購入でたとえば象、カバ、犬を同時に購入した場合、象の値を返す、と言ったことが可能でしょうか。
象が一番強く、次にカバ、一番弱いのが犬とします。
象>カバ>犬
象+カバ+犬 → 象
象+犬 → 象
象+カバ → 象
カバ+犬 → カバ
象 → 象
カバ → カバ
犬 → 犬
複数購入された場合には上記のルールの沿った値を出す方法を教えてください。
宜しくお願いします。
3 个回答

サンプルデータの提供ありがとうございます。
式はこんな感じですね。ここでは強さをランキングで指定(小さい方が強い)していますが、逆順でもいいです。
代表アイテムを取るときは、LOD表現をネストします。
内側のLOD表現でTran Idごとの強さの最小値、つまりそのTran Idが持つ最も強い値を取り出し、
外側のLOD表現でその値に合致するアイテム名(このサンプルでは動物の名前)を取り出します。
もし強さの式で番号の割り当てを逆順にしているときは、下図の赤線を引いた箇所をMINからMAXに変えます。
これで当該レコードが持つItemに関わらず、常にそのTran Idの代表アイテムを表示することができます。
<result>