2014-01-05 77 views
0

我有一個表(表1)與3列:MySQL表達式檢索百分比

名稱| RegDate |活動

我想知道什麼是兩個日期之間是活動的行(活動= 1)的比例在RegDate列。

例如: 之間 '2013-01-01' 和 '2013年3月31日'(RegDate場),我想知道什麼是有效百分比(活動= 1) ?

可以在單個MySQL表達式中執行此操作嗎?

目前,我有這樣的:

$ SQL =「SELECT * FROM表1 T其中t.RegDate < = '2013年3月31日' AND t.RegDate> =「2013-01- 01' 「; $ sql_executa = $ conn-> prepare($ sql)or die($ sql); $ sql_executa = $ conn-> prepare($ sql)or die($ sql); $ sql_executa = $ conn->

$ sql_executa-> execute();

$ total = $ sql_executa-> rowCount();

$ sql_2 =「SELECT * FROM Table1 t WHERE t.RegDate < ='2013-03-31'AND t.RegDate> ='2013-01-01'AND Active = 1」;

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

$ sql_executa_2-> execute();

$ total_2 = $ sql_executa_2-> rowCount();

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

在此先感謝

回答

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' 
+0

感謝,這工作得很好。 –