确定Hive中{av}(col)的最大值

时间:2016-04-08 14:26:53

标签: sql hadoop hive subquery

我有一张表格如下:

year                    int                                        
month                   int                                        
dayofmonth              int                                        
deptime                 int                                        
uniquecarrier           string                                     
flightnum               int                                        
arrdelay                int                                        
origin                  string                                     
dest                    string                                     

我想获得目的地机场(dest),其中平均到达延迟(arrdelay)是最高的。

我想避免像我现在那样粗暴的东西:

select dest, avg(arrdelay) as average from flightdelays GROUP BY dest ORDER BY average DESC LIMIT 1;

我尝试了各种各样的事情,但迄今为止没有任何作用。我实际上可以获得最大平均时间:

select MAX(avgtime) from (SELECT dest as destination, avg(arrdelay) as avgtime FROM flightdelays GROUP BY dest) as maxdelay;

但是修改它不会起作用 - 它只是不允许我从上面选择目的地。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

对于您的第一个查询,您的意思是什么?是你只想要'dest'而不是平均值吗?

如果是这样,请考虑使用其他选择:

select dest from (select dest, avg(arrdelay) as average from flightdelays GROUP BY dest ORDER BY average DESC LIMIT 1);

Hive不允许使用'group by'或'order by'与select语句中没有的字段,但是例如Mysql。