在两个日期内获取每周不同的用户数

问题描述 投票:0回答:1

我有一个日志表PRTL_UserAccessLog,其中有userID,datetime列。我需要在两个自定义日期之间获取每周不同的已记录用户数,如下所示

from date:01 Dec 2017
todate:31 dec 2017

我的星期开始日期应该是星期日。我创建了以下查询来获取结果

    SET DATEFIRST 7
    SELECT DISTINCT 
       'week '+ CAST(DATEPART(WEEK, Datetime)AS NVARCHAR(10)) AS weeknumber,
   --I need to get the distinct count of users within this week as weekloggedcount
    FROM 
        dbo.PRTL_UserAccessLog
    WHERE
        Datetime > '2017-12-01' AND Datetime < '2017-12-31'
        AND usertypeid=1
    ORDER BY
       weeknumber

结果应该是这样的:

**Weeknumber**   **weeklogcount**
  Week48               10
  Week49               50
sql sql-server
1个回答
2
投票

你可以试试这个。

SET DATEFIRST 7
SELECT DISTINCT 
   'week '+ CAST(DATEPART(WEEK, Datetime)AS NVARCHAR(10)) AS weeknumber,
    COUNT(DISTINCT userID ) weeklogcount
FROM 
    dbo.PRTL_UserAccessLog
WHERE
    Datetime > '2017-12-01' AND Datetime < '2017-12-31'
    AND usertypeid=1
GROUP BY 'week '+ CAST(DATEPART(WEEK, Datetime)AS NVARCHAR(10))
ORDER BY weeknumber
© www.soinside.com 2019 - 2024. All rights reserved.