2017-05-07 35 views
0

我有一個SQL表獲取每週率(我們稱之爲A)具有以下兩列從SQL表

dt - date 
userid - id of a user 
enroll - whether user enrolled or not (1 if user did, 0 otherwise) 

這是很容易計算出誰每天點擊的人數百分比,它的只是

select dt, sum(enroll)/count(*) as pct from A group by dt 

不過,我在想,如果有一個很好的內置功能在MySQL上計算百分比等,每週,每月,每年(或其他一些定製日期範圍)。

有沒有簡單的方法呢?

+0

有幾個功能可以幫助。對於每月或每年,您可以使用MONTH和YEAR功能。對於其他範圍,您可以使用INTERVAL。所有的語法和示例都很容易google。 –

+0

爲什麼要存儲關於未註冊用戶的信息?我沒有報名。我在那裏嗎? – Strawberry

回答

0

您需要聚合函數和一種確定指定日期的月份的方法。包含任何給定日期戳的月份的最後一天的LAST_DAY(datestamp) gives you midnight

所以,試試這個。

SELECT LAST_DAY(dt) month_ending, 
     sum(enroll)/count(*) as pct 
    FROM a 
    GROUP BY LAST_DAY(dt) 

你可以做幾周的類似事情。但是你需要一種按周分組的方式,就像LAST_DAY()可以讓你按月分組。我建議你看看。