2016-04-27 87 views
0

所以,我有這個表:請求SQL的百分比

Table1 
|Number | abc | 
|100 | No | 
|200 | No | 
|300 | Yes | 
|400 | No | 
|500 | No | 

我要的是值的百分比是「是」。在這種情況下,期望的輸出是20%

我認爲通過將總數除以「是」的數量它會這樣做,但我不能「加入」所有的東西。

我知道的號碼「是」是

select count(abc) 
from table1 
where abc='yes' 

而且總數

select count(*) 
from table1 

我如何獲得所需的輸出?

回答

1

,在所有的SQL引擎的工作原理查詢是

select sum(case when abc = 'yes' then 1 else 0 end) * 100/count(*) 
from your_table 
+0

第一種情況的工作,雖然第二(更簡單)沒有工作:ERROR:函數sum(布爾)不存在。但是,如果我找不到更簡單的,會使用第一個! – Username79123

+0

正如答案中所指出的那樣,如果您使用的是MySQL,您不會像我現在看到的那樣查詢第二個查詢。爲了避免混淆,我將其刪除。 –