尝试这个
//按区域过滤
create table t( id int,  answer varchar(10),Area varchar(10));
insert into t select 1  ,  'pass' , 'Area1';
insert into t select 2  ,  'pass' , 'Area1';
insert into t select 3  ,  'fail' , 'Area1';
insert into t select 4  ,  'fail' , 'Area1';
insert into t select 5  ,  'fail' , 'Area1';
insert into t select 6 ,   'fail' , 'Area2';
SELECT 
        (x.TotalFailedAnswerRecord * 100) /y.TotalRecord AS Fail_percent
FROM
            (   SELECT Area,TotalFailedAnswerRecord = COUNT(answer) 
                FROM t 
                WHERE answer='fail' AND Area = 'Area1' 
                GROUP BY Area
            )x
INNER JOIN
            (   SELECT Area,TotalRecord = COUNT(answer) 
                FROM t 
                WHERE Area = 'Area1'
                GROUP BY Area
            )y ON x.Area =y.Area
//Result
Fail_percent
-------------
60
//按区域、产品筛选
create table t( id int,  answer varchar(10),Area varchar(10),Product varchar(10));
insert into t select 1  ,  'pass' , 'Area1' ,'Product1';
insert into t select 2  ,  'fail' , 'Area1' ,'Product1';
insert into t select 3  ,  'fail' , 'Area1' ,'Product1';
insert into t select 4  ,  'fail' , 'Area1' ,'Product1';
insert into t select 5  ,  'fail' , 'Area1' ,'Product2';
insert into t select 6 ,   'fail' , 'Area2' ,'Product2';
SELECT 
        (x.TotalFailedAnswerRecord * 100) /y.TotalRecord AS Fail_percent
FROM
            (   SELECT Area,Product,TotalFailedAnswerRecord = COUNT(answer) 
                FROM t 
                WHERE answer='fail' AND Area = 'Area1' AND Product = 'Product1' 
                GROUP BY Area,Product
            )x
INNER JOIN
            (   SELECT Area,Product,TotalRecord = COUNT(answer) 
                FROM t 
                WHERE Area = 'Area1' AND Product = 'Product1'
                GROUP BY Area,Product
            )y ON x.Area =y.Area AND x.Product = y.Product
//Result
Fail_percent
-------------
75
希望这可以帮助