SQL百分比查找任务

时间:2016-03-11 21:15:21

标签: mysql sql oracle-sqldeveloper

我试图获得每种类型消息的处理错误百分比。 顺便说一下,我们只需要采用> 1的百分比。 5%。 试图找到解决方案,但没有任何作用..

数据库结构:

The Structure of Database

QRY_TYPE ID - 类型的唯一标识符С_NAME - 类型名称,C_AB_REF - 指向处理这些类型消息的基因的链接)。

ST_ABONENTS ID - 唯一标识符,С_NAME - 名称)

QRY_QUEUE ID - 唯一标识符,С_IN_TIME - 将msg写入表格的日期和时间,C_EXEC_TIME - msg处理的日期和时间, C_ST - 处理状态(null - 没有,1 - 成功,0 - 处理时出错),C_QRY_TYPE - 查询类型的链接。)

这是我的一次尝试,它仍然无法正常工作

select qt.c_name as qrytype, count(qq.C_ST)/(SELECT count(*) from qry_queue)*100 as PRC
from qry_type qt 
inner join qry_queue qq on qt.id = qq.c_qry_type
where qq.c_st =0 
group by qt.c_name;

结果应如下所示

RESULT

1 个答案:

答案 0 :(得分:0)

很难说没有实际数据和信息无法正常工作

所以这可能是你想要的:

select *
from
 (
   select qt.c_name as qrytype, 
      count(case when qq.c_st = '0' then qq.C_ST end) -- only rows with errors
      /count(*) * 100 as  PRC                         -- all rows
   from qry_type qt 
   inner join qry_queue qq on qt.id = qq.c_qry_type
   group by qt.c_name
 ) dt
where PRC >= 5