我有一个包含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; //这就是我需要的答案!
提前致谢
答案 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'