2017-06-21 243 views
0

我是Hive的新手,我陷入了一個相當簡單的問題。我的數據如下:Hive中列的總和的最大值

Name---Day---Doctor Bill--- Room Bill 

Rakesh 1 2500 1500 

Raja 1 5000 2300 

Raju 1 4500 2000 

Rakesh 2 3750 2250 

Rakesh 3 3550 1750 

Raja 2 4500 4000 

Raju 2 3450 4725 

要找出誰支付了最高的總醫生費用?

查詢:

hive> insert overwrite table maxdrbill select t.name,sum(t.drbill) as totaldrbill from patient t join (select name from patient group by name order by sum(drbill) desc LIMIT 1) t1 on t.name=t1.name GROUP by t.name; 

當我運行在蜂巢下面的查詢我收到以下錯誤:

FAILED: Error in semantic analysis: Line 1:149 Invalid table alias or column reference drbill

+0

你有5列總,但只有4對每一行數據的列? – Michael

回答

2

查詢

select name,SUM(doctorbill) as s from bills GROUP BY name ORDER BY s DESC LIMIT 1; 

輸出

Rakesh 9800 

希望它有幫助!

0

性能明智我相信這會好得多,因爲數據不需要進行排序以獲得最大值。

suming後剛剛獲得最大價值: SELECT t1.Name, MAX(TotalDrBill) FROM (SELECT t.Name, SUM(t.drbill) as TotalDrBill FROM Patient t GROUP BY t.Name) t1