2017-01-09 237 views
0

我知道這是一個荒謬明顯的問題,但我沒有得到SQL查詢需要組合的方式。我有一個名爲Customers的表,我需要計算具有值99的總客戶的百分比。表中只有三列。在SQLite中的總數的百分比

到目前爲止,我有SELECT COUNT (*) FROM customer WHERE x=99SELECT COUNT (*) FROM customer,但我不知道如何在單個查詢中將其中一個除以另一個。我試過SELECT (COUNT (*) FROM t_customer))/(Count (*) FROM t_customer WHERE customer_x=99)),但很明顯我做得很錯!我正在使用SQLite3。任何幫助,將不勝感激

回答

3

我的首選方法是:

SELECT AVG(case when x = 99 then 1.0 else 0 end) 
FROM customer; 

我相信以下也適用:

SELECT AVG(x = 99) 
FROM customer ; 
+0

謝謝,這一個偉大的工程。你能解釋我的邏輯嗎? –

+1

@DaveC:以布爾值(0 = false,1 = true)表達式的AVG作爲它的值的比例爲真。 – dan04