我有一张表格如下:
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;
但是修改它不会起作用 - 它只是不允许我从上面选择目的地。
有什么想法吗?
由于
答案 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。