2012-04-02 129 views
1

我在我的数据库中建立了一个表,该表插入登录号和成功登录网站时的时间戳。计算每月登录的天数

我通过插入数据UNIX_TIMESTAMP

我现在需要构建一个查询计数登录在给定月份每个用户的数量..起脚的是,我只希望跟踪的天数用户在特定月份登录,而不是实际的登录计数编号。

这是我已经开始与查询,但我不需要总登录的次数,只是每个用户登录每月的天数:

SELECT login, COUNT(DAY(FROM_UNIXTIME(datestamp))) 
FROM logincount 
GROUP BY login 

回答

1

我相信你想COUNT(DISTINCT)

另外,如果你想每月数,你可以添加MONTH功能到您的SELECTGROUP BY

SELECT 
    login, 
    MONTH(FROM_UNIXTIME(datestamp)) AS MonthOfYear, 
    COUNT(DISTINCT DAY(FROM_UNIXTIME(datestamp))) AS DaysInMonth 
FROM logincount 
GROUP BY login, MONTH(FROM_UNIXTIME(datestamp)) 
0

您可以使用:

SELECT login,count(a) FROM (SELECT login, DAY(FROM_UNIXTIME(datestamp) AS a FROM logincount) sq GROUP BY login; 

获得天计数每次登录。