Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询-显示故障率%_Mysql_Sql_Database - Fatal编程技术网

Mysql 查询-显示故障率%

Mysql 查询-显示故障率%,mysql,sql,database,Mysql,Sql,Database,我写这个查询是为了得到我的数据,所有的数据都很好 我有一个栏目要么通过要么不通过。我想计算失败预订数量的百分比,并以单个值输出它 我将不得不写另一个查询来显示这个数字 例如:下面的数据,我有4次预订,其中2次失败。因此,50%是故障率。我省略了显示中的一些列,但可以在查询中看到。将原始条件修改为以下内容。请注意,不需要将查询包装到子查询中 CONCAT(FORMAT((100 * SUM(CASE WHEN trip_rating.rating <= 3 AND (TIMESTAM

我写这个查询是为了得到我的数据,所有的数据都很好

我有一个栏目要么通过要么不通过。我想计算失败预订数量的百分比,并以单个值输出它

我将不得不写另一个查询来显示这个数字


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

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

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
CONCAT(格式((100*SUM)(跳闸额定值=15时的情况
那么1
其他0
结束)/计数(*),2),“%”作为故障率

这也会将您的失败率格式化为
50.0%
,并带有一个百分号。

这是对所有记录和简单数学的汇总:

select count(case when decision = 'Fail' then 1 end) / count(*) * 100
from (<your query here>) results;
select count(当决策为'Fail'时为1 end)/count(*)*100
从()结果;

说明:
COUNT(某物)
计算非空值
case当decision='Fail'时,则1 end
对于失败为1(即不为null),否则为null(因为null是case/when&dash;中不匹配的默认值,您也可以明确写入
else null end

请查看下面给出的深思熟虑的答案,谢谢。OP昨天问了同样的问题:你需要小心整数除法。