我可以使用以下查询确定上个月访问过的用户数量:
SELECT COUNT(ID) from USERS WHERE DATEDIFF(month, LastAccessDate, GETDATE()) < 1
我现在想要一个查询返回用户数和他们访问后的天数。所以结果看起来像是:
Count | Days Since Last Visit
100 | 1
200 | 2
如何计算上一次访问后的天数以及按该列分组?
答案 0 :(得分:1)
我认为这是您正在寻找的查询:
SELECT
COUNT(ID) 'Count'
, DATEDIFF(DAY, LastAccessDate, GETDATE()) 'Days Since Last Visit'
FROM Users
GROUP BY DATEDIFF(DAY, LastAccessDate, GETDATE())
代码的写法与您在上一句中所解释的完全相同。
如果您要排除今天已登录的用户(Days Since Last Visit
列中有0),请使用以下查询:
SELECT
COUNT(ID) 'Count'
, DATEDIFF(DAY, LastAccessDate, GETDATE()) 'Days Since Last Visit'
FROM Users
WHERE DATEDIFF(DAY, LastAccessDate, GETDATE()) > 0
GROUP BY DATEDIFF(DAY, LastAccessDate, GETDATE())