2016-07-11 6 views
0

以下に示すように、3つの異なる列pid、org、amountを持つテーブルがあります。ハイブsqlのグループ化されたデータの上位1レコード

pid org amount 
---- ---- ------ 
1 1 5 
1 1 6 
2 1 2 
2 1 4 

pidとorgによってグループ化されたレコードが最大量で必要です。

as、sqlの豊富な機能は、ハイブの必要性では簡単な方法ではサポートされていません。

動作しない場合は、二重の量を変換グループ

select pid,org,max(amount) from data 
group by pid,org; 

のカラムの最大値を返し max function
使用

pid org amount 
---- ---- ------ 
1 1 6 
2 1 4 
+1

あなたは何を試しましたか?ハイブとSQLはかなり類似しています。あなたのクエリはSQLで書かれたものと同じになります – mcha

+0

私はこのことを忘れました。 – Dileep

答えて

1
select pid,org,max(amount) from table1 group by pid,org; 
+0

私はこのことをどのように逃したのか分かりません。おかげで – Dileep

0

ような結果表があるべき

select pid,org,max(CAST(amount as double)) from data 
group by pid,org; 
+0

ありがとう私はいくつかの他の複雑な方法のmax()関数と考えてどのように逃した – Dileep

関連する問題