2017-06-15 4 views
0

私は、単一のリレーショナル表のデータソースを持って定義されたボラビューを持っています。結果セットに2つの列が含まれていますが、そのうちの1つに集計関数が割り当てられています。このデータプレビューは期待どおりに動作します。はどのように集計値に基づいて、ボラテーブルのクエリ結果をフィルタリングすることができますか?

は論理的に、私は、集計値が条件を満たした場合にのみ、データをフィルタリングする「どこ」句を追加します。集計値でこれを行うには、私はHAVING節を定義する必要があることを理解しています。だから、これは私がやったことですが、それは、次の例外が発生:私はSQLエディタを使用して同じことをしようとしていると私は同じ例外結果を得る

org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 9147.0 failed 1 times, most recent failure: Lost task 0.0 in stage 9147.0 (TID 246678, localhost): sap.hanavora.jdbc.VoraException: HL(9): Runtime error. (sql_error:1:193-1:203: error: Unresolved reference SELECT "__subquery1"."CHARGE_DEPARTMENT", AVG("__subquery1"."COST") AS "AVG_COST" FROM (SELECT "HC_SERVICE"."CHARGE_DEPARTMENT", "HC_SERVICE"."COST" FROM "HC_SERVICE") AS "__subquery1" WHERE ("AVG_COST" > 500.0) GROUP BY "__subquery1"."CHARGE_DEPARTMENT" LIMIT 1000 ^^^^^^^^^^) at sap.hanavora.jdbc.driver.HLMessage.buildException(HLMessage.java:97) at ...

、ここでのクエリは次のとおりです。

select CHARGE_DEPARTMENT, avg(COST) as AVERAGE_COST 
from HC_SERVICE 
group by CHARGE_DEPARTMENT 
having AVERAGE_COST > 500.00; 

私はまた、設定その結果にhaving句を適用しようとし、その後副選択に最初のクエリを移動し、試してみたが、私は同じエラーを取得してしまいます。しかし、Voraエンジンがすでにこのケースでサブクエリを構築していることが(例外に基づいて)表示されるため、これは必要ではないと私は考えています。

+0

アップデート:私はボラ1.4を実行していますし、この問題は、私の場合には、固有のものです新しいVoraリレーショナルエンジン。私はVora In-Memory Engineが期待どおりに動作することを確認でき、集計カラムを活用するビューまたはチャートフィルタを作成する代替手段として使用できます。 – Ryan

+0

私は今1.4.20を実行していますが、これは部分的にしか修正されていません。私は今、単純なHAVING句を適用することができますが、私は同じ集計フィールドに「AND」条件を追加しようとすると、私はエラーを取得します。 ; ' この同じSQL 'SELECT CHARGE_DEPARTMENT、(AVG(COST))CHARGE_DEPARTMENT BY CHARGE_DEPARTMENT HAVING AVERAGE_COST> 200 AND AVERAGE_COST <450 ORDER BY SERVICE 群からAVERAGE_COST AS:たとえば、このSQLは、エラーが発生しVora In-Memory Engineではまだ動作しますが、Relational Engineでは動作しません。これが別のパッチまたは2.0で修正されているかどうかを確認できますか? – Ryan

答えて

0

あなたはボラツールモデラーでこれをやろうとしていますか?

あなただけのSQLを使用している場合、これはあなたが望む結果を与える必要があります。エラーを

select CHARGE_DEPARTMENT, AVERAGE_COST from (
    select CHARGE_DEPARTMENT, avg(COST) as AVERAGE_COST 
    from HC_SERVICE 
    group by CHARGE_DEPARTMENT 
    ) as subQuery 
where subQuery.AVERAGE_COST > 500.00; 
+0

はい、私はこのクエリに基づいてVoraビューを作成しようとしていますが、私はModelerでもSubSelectを使ってみました。 SQLの直接的な提案をありがとう。しかし、私は同じSQLを試すときに例外が発生します。 – Ryan

0

は「...未解決の参照...」を有するとボラのバグによるものです。それは、次のVora 1.4パッチで修正される予定です。この問題の回避策はありません。

アップデート2017年7月6日:この問題は、(2017年7月3日以降で利用可能)ボラ1.4パッチ2に固定されている

関連する問題