我在spark上有一个镶木地板文件,我正在转换为带有三列的临时表,航班号,Origin机场和出发延迟。没有延迟的航班在延迟栏中的值为0(零),其余的航班延误了其中的航班数。我想计算每个机场延误的航班百分比。
我尝试这样做的一种方法是获取机场的总航班数,并将该数字除以该机场延误的航班数量。这是我正在使用的查询:
选择Origin为cur_origin,count(Origin)为totalCount,(select count(*)FROM flightData WHERE Origin = cur_origin AND DepDelay> 0)为delayedCount FROM flightData GROUP BY Origin;
P.S。在上面的查询中,我不是将这两个数字分开,而只是尝试显示它们以进行调试。
但是,这给了我错误:未解析的运算符Aggregate Origin
任何人都可以告诉我我做错了什么,或任何其他解决方案。
答案 0 :(得分:0)
试试这个,虽然您可能在计算(原点)时遇到问题,因为这是您的分组。
select
Origin as cur_origin,
count(Origin) as totalCount,
sum(if(DepDelay > 0,1,0)) as delayedCount
FROM flightData
GROUP BY Origin