この関数について、すこし紹介(こちら)したことがありますが、
色々調べて注意点をまとめました。
- まずMONOTONIC関数はSASのリファレンスに載っていない、いわゆる「Undocumented SAS function」
- データステップで使う分にはあまり問題となる事はないですが、SQLプロシジャで使用する際は要注意
どういう事かというと、、
データステップだとレコードが並んでる順にデータ処理が行われるけど、
SQLプロシジャだと再マージやGROUP処理など複雑な処理では、レコードが並んでいる順に処理を行っているわけでは無さそう(内部的な話なので、どのような順で処理を行うのかも分からない) - MONOTONIC関数は処理順に連番をふるので、SQLプロシジャで使用すると上記で説明したとおり、意図したものと違う、おかしな順番で番号がふられてしまいます。
MONOTONIC関数の結果値を見ることでSQLプロシジャでの内部処理順を探るヒントになりそうで、それはそれで面白いけど、注意点としておさえておく必要があります。
SASYAMAさんの記事で更なる注意点が見つかりました。
monotonic関数でアイタタタ(データステップ100万回)

