来自 Hive 中列总和的 MAX 值
Posted
技术标签:
【中文标题】来自 Hive 中列总和的 MAX 值【英文标题】:MAX value from the sum of columns in Hive 【发布时间】:2017-06-21 17:53:39 【问题描述】:我是 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;
当我在 hive 中运行以下查询时,我收到以下错误:
FAILED:语义分析错误:第 1:149 行无效的表别名或 列引用 drbill
【问题讨论】:
您总共有 5 列,但每行只有 4 列数据? 【参考方案1】:查询
select name,SUM(doctorbill) as s from bills GROUP BY name ORDER BY s DESC LIMIT 1;
输出
Rakesh 9800
希望对你有帮助!
【讨论】:
【参考方案2】:性能方面,我相信这会更好,因为不需要对数据进行整理以获得最大值。
求和后得到最大值:
SELECT t1.Name, MAX(TotalDrBill) FROM
(SELECT t.Name, SUM(t.drbill) as TotalDrBill FROM Patient t GROUP BY t.Name) t1
【讨论】:
以上是关于来自 Hive 中列总和的 MAX 值的主要内容,如果未能解决你的问题,请参考以下文章