Hive 从HQL中最大值(列)的表中选择值
我对HQL还相当陌生,仍在尝试通过语法找到自己的方法。我有一张“得分表”,上面有球员ID和致胜球(GWG)。我想查看拥有最大GWG的玩家。这是我的疑问:Hive 从HQL中最大值(列)的表中选择值,hive,hql,reserved-words,Hive,Hql,Reserved Words,我对HQL还相当陌生,仍在尝试通过语法找到自己的方法。我有一张“得分表”,上面有球员ID和致胜球(GWG)。我想查看拥有最大GWG的玩家。这是我的疑问: select playerid as ID from scoring where gwg = ('select max(scoring.gwg) from scoring'); 虽然Hive打印列的名称,但我没有得到输出。但是当我硬编码'gwg=16'时,我得到了我需要的输出。有什么建议吗?我正在编写Hortonworks 2.3.2。你可
select playerid as ID from scoring where gwg = ('select max(scoring.gwg) from scoring');
虽然Hive打印列的名称,但我没有得到输出。但是当我硬编码'gwg=16'时,我得到了我需要的输出。有什么建议吗?我正在编写Hortonworks 2.3.2。你可以试试这个
select playerid, max(scoring.gwg) from scoring group by playerid;
这是另一个
select playerid, max(scoring.gwg) as maxScore from scoring
group by playerid order by maxScore desc;
上面将按降序给出玩家ID,即得分最高的将位于顶部。您可以尝试此操作
select playerid, max(scoring.gwg) from scoring group by playerid;
这是另一个
select playerid, max(scoring.gwg) as maxScore from scoring
group by playerid order by maxScore desc;
上面将按降序给出玩家ID,即得分最高的ID将位于顶部。有几种方法可以做到这一点。 获取最大计数并使用最大gwg过滤playerid
select playerid
from scoring
group by playerid
having count(*) = ( select max(c) from
(
select playerid,count(*) c
from scoring
group by playerid
) a
)
或者获取计数并按降序排序,然后获取最上面一行
select playerid, count(*) as cnt
from scoring
group by playerid
order by cnt desc
limit 1;
有两种方法可以做到这一点。 获取最大计数并使用最大gwg过滤playerid
select playerid
from scoring
group by playerid
having count(*) = ( select max(c) from
(
select playerid,count(*) c
from scoring
group by playerid
) a
)
或者获取计数并按降序排序,然后获取最上面一行
select playerid, count(*) as cnt
from scoring
group by playerid
order by cnt desc
limit 1;
我想你所需要的只是这个简单的查询
select playerid,max(scoring.gwg) as max from scoring group by playerid order by max desc
配置单元不支持子查询。我认为您所需要的只是这个简单的查询
select playerid,max(scoring.gwg) as max from scoring group by playerid order by max desc
配置单元不支持子查询。子查询不应在引号内。它是一条语句,而不是字符串值。子查询不应包含在引号内。这是一条语句,不是字符串值。谢谢!但是现在我甚至在加载ambari登录页面时都遇到了问题,所以现在可以尝试一下了。一旦我把它整理好,我一定会尝试一下!Hi Abhijit,尽管查询可以工作,但它仍然没有给出最大值。我尝试了使用和不使用max的查询。我仍然得到相同数量的条目。我需要选择今年的最高分数,不管重复的球员。很抱歉,我在ambari中一直有一个读取时间错误,必须再次修复它。我还试图显示每年的产出。您建议的查询工作得很好,但当我添加“year”或group by year时,事情会变得混乱,我会得到重复的结果。这是我现在的查询:
选择max(gwg)作为gwg,playerid,根据playerid从评分组中选择年份,根据gwg desc选择年份顺序代码>谢谢你!但是现在我甚至在加载ambari登录页面时都遇到了问题,所以现在可以尝试一下了。一旦我把它整理好,我一定会尝试一下!Hi Abhijit,尽管查询可以工作,但它仍然没有给出最大值。我尝试了使用和不使用max的查询。我仍然得到相同数量的条目。我需要选择今年的最高分数,不管重复的球员。很抱歉,我在ambari中一直有一个读取时间错误,必须再次修复它。我还试图显示每年的产出。您建议的查询工作得很好,但当我添加“year”或group by year时,事情会变得混乱,我会得到重复的结果。这是我现在的查询:选择max(gwg)作为gwg,playerid,根据playerid从评分组中选择年份,根据gwg desc选择年份顺序代码>谢谢。由于我的ambari登录页面未加载,我无法尝试此操作。我一修好就试试这个!非常感谢。由于我的ambari登录页面未加载,我无法尝试此操作。我一修好就试试这个!