【问题标题】:MAX value from the sum of columns in Hive来自 Hive 中列总和的 MAX 值
【发布时间】: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 列数据?

标签: hive


【解决方案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

    【讨论】:

      猜你喜欢
      • 2019-02-11
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多