AthenaのWHERE句でIS NULLがうまく効かない
AthenaのSQLの条件でIS NULLとIS NOT NULLを書いても想定してた値が取れないため困惑していました。
例えばcount(x)
はprestoのドキュメント通りnullを考慮してくれており、値としてはnullは認識しているようには見えています。
行によってはによっては正しく判定されているところもあったので更によくわからないのですが、とにかくnullの条件がうまく聞きませんでした。
<count(x) → bigint#
Returns the number of non-null input values.
lengthで代替案
しょうがないので別の方法を取ることにして、今回は空文字があってもそれも無視することにしたので
length(column_name) > 0
と記述することで空文字とnullは0が帰ってくるはずで、それだけを取り除くことができました。
これまでもIS NULLが効かないことがあったのですが、データに空文字が混じってるのかな?くらいに思ってましたが、countではしっかりnullと判定しているくせに、IS NULLは判定できないという惑わしが辛かったです。
認識等間違っていたら指摘いただきたいです。