2016-04-04 19 views
0

私はImpalaで新しく、1つのフィールドがSUM(X)であるクエリを作成しようとしています。そのフィールドに条件を入れたいと思います。 MySQLでこのクエリを使用したときに、 "SUM(X)がNULLでない"という結果が得られました。誰でもImpalaの同等の機能を知っていますか?Cloudera-ImpalaでIS NOT NULL

私はいくつかの方法を試してみました、これは私が得たものである:

  • "SUM(X)はNULLではありませんHAVING" - > AnalysisException:署名と一致する機能なし:ISNULL(STRING)。
  • "SUM(X)NOT NULL" - > AnalysisException:93行目の構文エラー:SUM(X)NOT NULL ^発生した:NULL期待される:IN、LIKE、REGEXP、RLIKE原因:例外:構文エラー

誰かが私のための答えを持っているなら、本当に感謝しています...ありがとう!

+1

投稿し、あなたはあなたがNULLに対する=と直接比較することはありません – Jared

答えて

-1

試しましたIF条件付きの機能はありますか?

HAVING IF(SUM(X) = NULL, FALSE, TRUE) 

ドキュメント: http://www.cloudera.com/documentation/archive/impala/2-x/2-1-x/topics/impala_conditional_functions.html

+0

実行しているクエリの例下さい。 SUM(X)が実際に何であるかにかかわらず、これは常にfalseを生成する可能性があります。たとえば、 'IF(NULL = NULL、1、0)'を選択すると、期待どおりに0ではなく1が得られます。一方、 'select IF(NULL!= NULL、1、0)'もまた、前者の否定ではなく0を返します。 '(NULLがNULL、1、0)if NULL、1、0) '期待どおりに動作します。ここではImpalaの具体的なケースについて説明しています。これは実装に依存しませんが、この点ではImpalaの動作はSQL標準に従っています。 – Mateo

+0

ところで、Impalaでは、 'IF(expr、false、true)'の簡単な代替は 'NOT(expr)'です。 – Mateo