2017-02-18 70 views
0

我有一個表中的項目,任務和狀態獲取項目的百分比計算在一個MySQL表

**TASK** **STATUS** 
task1  N/A 
task1  N/A 
task1  Yes 
task1  Yes 
task1  No 
task2  No 
task2  Yes 

我試圖獲取完整的設置爲yes,而不是N/A中的每個任務的百分比。

爲了獲得任務的總價值我用這個SQL

select tasks, count(*) as count from mytable where status <> 'NA' group by tasks 

是否有一個SQL的方式來獲得的唯一任務的百分比值,其中狀態= Yes和不等於N /一個 ?

+0

更新您的問題並顯示預期結果 – scaisEdge

回答

1
select tasks, count(*) as count 
     , count(*) * 100/(select count(*) 
          from mytable 
          where status <> 'NA' and status = 'yes') as percent     
from mytable 
where status <> 'NA' and status = 'yes' 
group by tasks 
0

個人而言,我喜歡這種方法:

select tasks, 
     avg(status <> 'NA') 
from mytable 
group by tasks; 

的MySQL把一個布爾值作爲當多個預期的整數,用「1」爲真並且「0」表示假。所以,該值的平均值給出了該比例。如果你想要一個「百分比」,你可以乘以100。