2016-03-11 118 views
0

我試圖爲每種類型的消息獲得處理錯誤的百分比。順便說一句,我們只需要採取> 5%的百分比。 試圖找到解決方案,但沒有任何工程..SQL百分比查找任務

數據庫的結構:

The Structure of Database

QRY_TYPEID - 型,С_NAME的唯一標識符 - 類型,C_AB_REF的名字 - 鏈接處理這些類型消息的abonent)。

ST_ABONENTSID - 唯一標識符,С_NAME - 名稱)

QRY_QUEUEID - 唯一標識符,С_IN_TIME - 味精處理的日期和時間 - 日期和寫入MSG成表,C_EXEC_TIME的時間,C_ST - 處理狀態(空 - 沒有,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

+0

你似乎使用Oracle('VarChar2'),你爲什麼標記'mysql'? – dnoeth

回答

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 
+0

感謝它的幫助 – Alexey