2017-01-09 234 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