1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Athena】IS NULLやIS NOT NULLが効かない

Posted at

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は判定できないという惑わしが辛かったです。
認識等間違っていたら指摘いただきたいです。

1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?