我有一个包含3列的表(Table1):
姓名| RegDate |活性
我想知道RegDate列中两个日期之间处于活动状态(Active = 1)的行的百分比。
例如:
在“ 2013-01-01”和“ 2013-03-31”之间(RegDate字段),我想知道什么是有效百分比(Active = 1)?
是否可以在单个MySQL表达式中执行此操作?
目前,我有这个:
$ sql =“ SELECT * FROM Table1 t T.RegDate ='2013-01-01'”
$ sql_executa = $ conn-> prepare($ sql)或die($ sql);
$ sql_executa-> execute();
$ total = $ sql_executa-> rowCount();
$ sql_2 =“ SELECT * FROM Table1 t t.RegDate ='2013-01-01'AND Active = 1”;
$ sql_executa_2 = $ conn-> prepare($ sql_2)或死亡($ sql_2);
$ sql_executa_2-> execute();
$ total_2 = $ sql_executa_2-> rowCount();
$ Percentagem =($ total_2 * 100)/ $ total; //这是我需要的答案!
提前致谢
最佳答案
尝试:
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'