Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 SQL百分比查找任务_Mysql_Sql_Oracle Sqldeveloper - Fatal编程技术网

Mysql SQL百分比查找任务

Mysql SQL百分比查找任务,mysql,sql,oracle-sqldeveloper,Mysql,Sql,Oracle Sqldeveloper,我正在尝试获取每种消息类型的处理错误百分比。 顺便说一下,我们只需要取大于5%的百分比。 试图找到解决方案,但没有任何效果 数据库的结构: QRY_类型(ID–类型的唯一标识符,С_名称–类型名称,C_AB_REF–链接到处理这些类型消息的联系人) ST_ABONENTS(ID–唯一标识符,С_名称–名称) QRY_队列(ID–唯一标识符,С_IN_TIME–将消息写入表中的日期和时间,C_EXEC_TIME–消息处理的日期和时间,C_ST–处理状态(null-未处理,1-成功,0-处理错误)

我正在尝试获取每种消息类型的处理错误百分比。 顺便说一下,我们只需要取大于5%的百分比。 试图找到解决方案,但没有任何效果

数据库的结构:

QRY_类型
ID
–类型的唯一标识符,
С_名称
–类型名称,
C_AB_REF
–链接到处理这些类型消息的联系人)

ST_ABONENTS
ID
–唯一标识符,
С_名称
–名称)

QRY_队列
ID
–唯一标识符,
С_IN_TIME
–将消息写入表中的日期和时间,
C_EXEC_TIME
–消息处理的日期和时间,
C_ST
–处理状态(null-未处理,1-成功,0-处理错误),
C_QRY_类型
–查询类型的链接)

那是我的一次尝试,它仍然不起作用

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;
结果应该是这样的


如果没有实际的数据和信息,很难说什么是不起作用的

所以这可能就是你想要的:

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
您似乎在使用Oracle(
VarChar2
),为什么要标记mysql?