1

Employeeユーザーが特定の金属をどれだけ好きかを説明するSQLテーブルがあります。テーブルは次のようになります

    "Employee_number" "Rank_1  "Rank_2   "Rank_3   "Rank_4   "Rank5
                   1    Gold    null      null      null    null
                   2    bronze  Gold      null      null    null
                   3    Gold    platinum  null      null    null
                   4    Gold    copper    null      null    null
                   5    Gold    bronze    platinum  null    null
                   6    Gold    bronze    platinum  null    null
                   7    Gold    platinum  Silver    null    null
                   8    Gold    platinum  Silver    null    null
                   9    Gold    platinum  business  null    null
                   10   null    null      null      null    null
                   11   Silver  bronze    business  platinum Gold

Employee_number フィールドは一意のフィールドです。

金属の一般的なランキングを説明する表もあり、次のようになります。

Metal     Rank
Gold        1
platinum    2
silver      3
copper      4
bronze      5

私がやろうとしているのは、従業員にnull値があるときはいつでも、ランキングに基づいてデフォルトの金属を入力することです

例 -> 従業員 10 の場合: すべての値は null 、簡単です。彼の rank_1 金属は Gold 、rank2_metal は Platinum 、rank3_metal は Silver 、rank 4_metal は銅、rank 5_metal は青銅になります。

ここで、employee_1 の場合、彼はすでに rank_1 の金属を持っていますが、他のランクは使用できません。そのため、rank2_metal を Platinum に、rank_3 の金属を silver に、rank_4 の金属を銅に、rank_5 の金属を 青銅 に置き換えます。

employee_2 の場合、彼は最初の金属としてブロンズ、2 番目の金属としてゴールドを持っています。彼の rank3_metal は Platinum になり、rank_4 の金属は silver になり、rank5_metal は銅になります

同様に、employee_6 の場合を考えてみましょう。彼は 3 つのランクを満たしており、ランク 4 と 5 を埋める必要があります。彼の rank_4 の金属は銀で、rank_5 の金属は銅です。

これがSQLでどのようになるかについて誰か提案がありますか、私はbigqueryを使用しています

4

1 に答える 1