查询 - 显示失败率%

时间:2016-02-11 08:50:51

标签: mysql sql database

我已经编写了这个查询来获取我的数据,并且所有数据都很好。

我有一列有Pass或Fail。我想计算失败的预订数量百分比,并将其输出为单个值。

我将不得不写另一个查询以显示一个数字。

例如:以下数据,我有4次预订,其中2次失败。所以50%是失败率。我在显示中省略了一些列,但可以在查询中看到。

2 个答案:

答案 0 :(得分:0)

将原始条件修改为以下内容。请注意,不需要将查询包装在子查询中。

CONCAT(FORMAT((100 * SUM(CASE WHEN trip_rating.rating <= 3 AND
    (TIMESTAMPDIFF(MINUTE,booking.pick_up_time,booking_activity.activity_time) -
     ROUND(booking_tracking_detail.google_adjusted_duration_driver_coming/60)) /
     TIMESTAMPDIFF(MINUTE,booking.pick_up_time,booking_activity.activity_time)*100 >= 15
    THEN 1
    ELSE 0
    END) / COUNT(*)), 2), '%') AS failureRate

这也会以50.0%格式设置失败率格式,并带有百分号。

答案 1 :(得分:0)

这是对所有记录和简单数学的聚合:

select count(case when decision = 'Fail' then 1 end) / count(*) * 100
from (<your query here>) results;

说明:COUNT(something)计算非空值。对于失败,case when decision = 'Fail' then 1 end为1(即非空),否则为null(因为null是CASE / WHEN中不匹配的默认值 - 您也可以明确地写else null end。)