Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何从配置单元表中查找最大值及其引用名称?_Hadoop_Hive - Fatal编程技术网

Hadoop 如何从配置单元表中查找最大值及其引用名称?

Hadoop 如何从配置单元表中查找最大值及其引用名称?,hadoop,hive,Hadoop,Hive,我有一个蜂巢表“航空公司”,如下所示: name airline USA American Airline Nepal Jet Airline Dubai Emirates USA SouthWestern USA Quatar USA Delta 现在,我想知道哪个国家拥有最多的航空公司。 我正在使用嵌套子查询 select max(tot) from (select name as countryName, count(airli

我有一个蜂巢表“航空公司”,如下所示:

name     airline
USA      American Airline
Nepal    Jet Airline
Dubai    Emirates
USA      SouthWestern
USA      Quatar
USA      Delta
现在,我想知道哪个国家拥有最多的航空公司。 我正在使用嵌套子查询

select max(tot)
from
(select name as countryName, count(airline) as tot
from airline
group by name) a
这给出了航空公司的最大计数,在本例中为4

4
但我还需要这个国家的名字。因此,期望的输出是:

USA 4

我们如何使用子查询来实现它?我没有使用子查询就完成了。我需要使用子查询执行。有人能帮我吗?

你可以使用
行号()


就关系而言,这给了一个专横的国家。如果您想要全部,只需将
行编号()
更改为
rank()

您可以使用
行编号()


就关系而言,这给了一个专横的国家。如果您想要全部,只需将
行编号()
更改为
rank()

您可以执行以下操作:

select name, max(tot)
from
(select name as countryName, count(airline) as tot
from airline
group by name) a

你可以这样做:

select name, max(tot)
from
(select name as countryName, count(airline) as tot
from airline
group by name) a

不需要筑巢

select country, count(*) as tot
      from airline
      group by country
order by tot desc
limit 1

不需要筑巢

select country, count(*) as tot
      from airline
      group by country
order by tot desc
limit 1

很简单,只需尝试以下表格即可获得最大值:
从表名称中选择MAX(列名称)

非常简单,只需尝试下表即可获得最大值:
从表名称中选择MAX(列名称)

此表达式将给出如下错误:SemanticException[error 10025]:第1:7行表达式不在按键“name”分组中此表达式将给出如下错误:SemanticException[error 10025]:第1:7行表达式不在按键“name”分组中我已经这样做了,但我还需要使用子查询。如何使用子查询。我已经这样做了,但我还需要使用子查询。如何使用子查询。我还需要名称而不仅仅是最大值。从表中选择列名称按列名称顺序按列名称ASC或DESC尝试它的工作我还需要名称而不仅仅是最大值。从表中选择列名称按列名称顺序按列名称ASC或DESC尝试它的工作我们可以使用另一个子查询来确定吗没有订购的最大值和名称?我不理解你的评论。但是如果你还有其他问题,你应该把它作为一个问题而不是在评论中提问。我的意思是,如果不使用order和desc函数,我们不能找到最大值和名称。我正在考虑只使用嵌套查询来解决问题。这可能吗?我们可以使用另一个子查询来确定最大值和名称而不排序吗?我不理解你的评论。但是如果你还有其他问题,你应该把它作为一个问题而不是在评论中提问。我的意思是,如果不使用order和desc函数,我们不能找到最大值和名称。我正在考虑只使用嵌套查询来解决问题。可能吗?