1

私は数日前からこれに対する解決策を見つけようとしています。次のデータセットがあります。


|id|order|certain_event|order_of_occurrence|
|--|-----|-------------|-------------------|
|a |1    |NULL         |NULL               |
|a |2    |NULL         |NULL               |
|a |3    |NULL         |NULL               |
|a |4    |NULL         |NULL               |
|a |5    |4            |1                  |
|a |6    |NULL         |NULL               |
|a |7    |NULL         |NULL               |
|a |8    |4            |2                  |
|a |9    |NULL         |NULL               |

望ましい出力は、order_of_occurrence列の null 値を次の非 null 値に置き換えることです。このような:

|id|order|certain_event|order_of_occurrence|
|--|-----|-------------|-------------------|
|a |1    |NULL         |1                  |
|a |2    |NULL         |1                  |
|a |3    |NULL         |1                  |
|a |4    |NULL         |1                  |
|a |5    |4            |1                  |
|a |6    |NULL         |2                  |
|a |7    |NULL         |2                  |
|a |8    |4            |2                  |
|a |9    |NULL         |NULL               |

サブクエリを使用して出現順列から null 以外の値を取得しようとしましたが、複数の値が返されます。次のように:

SELECT a.*,
      CASE
         WHEN a.order_of_occurrence IS NOT NULL THEN a.order_of_occurence
         WHEN a.order_of_occurence IS NULL THEN (SELECT B.ORDER_OF_OCCURENCE FROM dataset AS B 
                                                 WHERE B.ORDER_OF_OCCURRENCE IS NOT NULL)
      END AS corrected_order
FROM dataset AS a

ありがとう!

4

1 に答える 1