2017-06-21 72 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