2016-08-26 6 views
0

私は、Impalaのすべてのグループで「総計」列を実行する方法を探しています。窓関数を使用するImpalaの総計列

このように分割されたグループの合計を取得するために、ウィンドウ関数を使用するのは簡単です:

合計(x)は(Aによるパーティション)を超える

によって分割する表現があることが表示されません。しかし、 'すべて'。これはImpalaの欠点ですか?あなたはover文を空白のままにしておくことができます。

答えて

0

パーティション節はオプションです。私はこれを行うことはできません何らかの理由

[localhost:21000] > select id, sum(id) over() from tbl; 
+----+-------------------+ 
| id | sum(id) OVER(...) | 
+----+-------------------+ 
| 0 | 28    | 
| 1 | 28    | 
| 2 | 28    | 
| 3 | 28    | 
| 6 | 28    | 
| 7 | 28    | 
| 4 | 28    | 
| 5 | 28    | 
+----+-------------------+ 
Fetched 8 row(s) in 0.08s 
+0

:たとえば

select sum(x) over() from t; 

:あなたはこのようなクエリを書くことができます。私は得ます: errorMessage:AnalysisException:集計出力によって生成されないリスト式を選択します(GROUP BY句から欠落しています):sum(X)OVER() 問題はGROUP BY句全体ではありません、1つの列でグループ化)。私はパーティションごとの文を含める場合、私は、分析関数を使用することができます。 – Jonathan

+0

あなたの質問に他の何かが間違っています。あなたはより多くの質問を投稿できますか? – Matt

+0

でa.appによってrev_table 群からの総 ' として 'rev_by基' として a.app、和(a.rev)、和(a.rev)(上)を選択 結果: (GROUP BY句から抜けています):sum(a.rev)OVER() GROUP BY句には他の唯一の集約されていない列が含まれているとは思いません。これをどう解釈するかわからない。あなたの助けてくれてありがとうbtw – Jonathan

関連する問題