count()与select

时间:2017-04-14 03:14:15

标签: mysql sql select count

我在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

任何人都可以告诉我我做错了什么,或任何其他解决方案。

1 个答案:

答案 0 :(得分:0)

试试这个,虽然您可能在计算(原点)时遇到问题,因为这是您的分组。

select 
    Origin as cur_origin, 
    count(Origin) as totalCount, 
    sum(if(DepDelay > 0,1,0)) as delayedCount 
FROM flightData 
GROUP BY Origin