我有一个表,如下:
year int
month int
dayofmonth int
deptime int
uniquecarrier string
flightnum int
arrdelay int
origin string
dest string 我想要得到平均到达延迟(arrdelay)最高的目的地机场(dest)。
我想避免像我现在这样的粗糙的东西:
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;但是修改它是行不通的--它不会让我从上面的代码中选择目的地。
有什么想法吗?
谢谢
发布于 2016-04-10 01:32:28
关于你的第一个问题,你说粗糙是什么意思?是不是你只想要“dest”而不想要平均值?
如果是这样,请考虑使用额外的select:
select dest from (select dest, avg(arrdelay) as average from flightdelays GROUP BY dest ORDER BY average DESC LIMIT 1);Hive不允许对select语句中没有的字段使用'group by‘或'order by’,例如Mysql。
https://stackoverflow.com/questions/36502170
复制相似问题