1.null値の表現方法について
2.null値の発生源
3.null値に対する処理
4.keyにnull値が含まれている場合
以下の例は全てnull値として扱われる。
* , *abc , *(div_by_0) , *****
以下の例は全てnull値としては扱われず、単なる文字列として扱われる。
(*) , abc* , a*****
2-1.元データがnull値を含んでいる。
2-2.0割算が発生した。mavg,mshare,mdiv
2-3.存在しない行を参照した。mjoin,mjoinr,mslide,
2-4.存在しない項目を参照した。field=をパラメータに持つコマンド全て
2-5.扱える数値の範囲を越えた
一般的規則
null値に対する演算に関して、null値は無視される。
msum,mavg,mmax,mmin
下記のデータに対して例えば"mavg k=1 f=2"を実行するとする。null値は無視されるため演算は"10/3"とはならず、"10/1"となる。
a *
a 12 -> [mavg k=1 f=2] -> a 3
a *
下記のデータに対して"msum k=1 f=2"を実行するとする。全ての値がnull値であるため、結果もnull値となる。
a *
a * -> [msum k=1 f=2] -> a *
a *
0割算が発生する可能性があるコマンド
mavg,mdiv,mshare
mavg
下記のデータに対して"mavg k=1 f=2"を実行するとする。1項目目がbの2行は全てnull値であるため行数が0とカウントされる。その結果、演算は"0÷0"となり、0割算エラーが生じる。
mdiv
下記のデータに対して"mdiv f1=2 f2=3"を実行するとする。1行目については明らかに0割算となり、また2行目についても文字列は0として扱うため0割算となる。
また3行目と4行目については割る数、割られる数いずれかがnull値となるためnull値に関する一般的規則により結果もnull値となる。
a 10 0
a 5 abc
b * 10
b * *