MYSQL查询多个条件和SUM函数

时间:2016-12-31 07:55:55

标签: mysql

好吧,我的表中有这些列:

  1. wo_number
  2. crew_est
  3. manhour_est
  4. 状态(' FINISH'或NULL)
  5. 进展(这不在表格中)
  6. 我需要对进度进行此计算:

    progress = SUM(crew_est * manhour_est) WHERE status = 'FINISH') / (SUM(crew_est * manhour_est) WHERE status IS NULL);
    

    我需要进行上面的计算并将结果分组为wo_number。我在任何地方寻找答案,但仍然没有运气,我不知道从哪里开始。

    任何帮助将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用大小写进行条件聚合:

select wo_Number,
    100.0 * SUM(case 
            when status = 'FINISH'
                then crew_est * manhour_est
            else 0
            end) / SUM(case 
            when status is null
                then crew_est * manhour_est
            else 0
            end) progress_percentage
from your_table
group by wo_number;