MySQL表达式检索百分比

时间:2014-01-05 10:59:54

标签: mysql

我有一个包含3列的表(表1):

名称| RegDate |活性

我想知道 RegDate 列中两个日期之间活动行(有效= 1 )的百分比。

例如: 在“ 2013-01-01 ”和“ 2013-03-31 ”之间( RegDate 字段)我想知道什么是活跃百分比(有效= 1 )?

可以在单个MySQL表达式中执行此操作吗?

目前我有这个:

  

$ sql =“SELECT * FROM Table1 t WHERE t.RegDate< ='2013-03-31'AND t.RegDate> ='2013-01-01'”;

     

$ sql_executa = $ conn-> prepare($ sql)或die($ sql);

     

$ sql_executa->执行();

     

$ total = $ sql_executa-> rowCount();

     

$ sql_2 =“SELECT * FROM Table1 t WHERE t.RegDate< ='2013-13-31'AND t.RegDate> ='2013-01-01'AND Active = 1”;

     

$ sql_executa_2 = $ conn-> prepare($ sql_2)或die($ sql_2);

     

$ sql_executa_2->执行();

     

$ total_2 = $ sql_executa_2-> rowCount();

     

$ Percentagem =($ total_2 * 100)/ $ total; //这就是我需要的答案!

提前致谢

1 个答案:

答案 0 :(得分:1)

尝试:

SELECT sum( case when Active=1 then 1 else 0 end )
       /
       count(*) 
       * 100  
       As Percent_of_Active_records
FROM Table1 t 
WHERE t.RegDate <= '2013-03-31' 
  AND t.RegDate >= '2013-01-01'