如何计算每天注册的用户数量

时间:2015-01-06 20:24:39

标签: sql sql-server

汽车司机在街上的不同检查站登记。我想查看司机每周注册一天的次数。

所以我到目前为止的是:

SELECT DISTINCT Register.userId AS "Active Users" Register.timestamp 
  FROM [dbo].[Register]
  INNER JOIN [dbo].[Users]
  ON Register.userId = Users.id AND Register.organisationId = users.organisationId
  INNER JOIN [dbo].[Organisations]
  ON Register.organisationId = Organisations.id
  where Organisations.id = '1105'  AND (log.timestamp between '2014-10-1 00:00:00' AND '2014-10-7 23:59:59') 
Group by Register.userId, Register.timestamp 

我想知道的是每周用户驾驶汽车的次数。用户可以在不同的检查点每天注册多次,但我只对一个注册表示感兴趣,该注册表明该用户在该特定日期使用了该车。

2 个答案:

答案 0 :(得分:2)

Assuming you need your data group by

1. User
2. Week
3. Day (once per day)

SELECT Register.userId AS "Active Users" DatePart(week, Register.timestamp) WeekNum, Count(DISTINCT Convert(date, Register.timestamp)) RegCountPerDay 
  FROM [dbo].[Register]
  INNER JOIN [dbo].[Users]
  ON Register.userId = Users.id AND Register.organisationId = users.organisationId
  INNER JOIN [dbo].[Organisations]
  ON Register.organisationId = Organisations.id
  where Organisations.id = '1105'  AND (log.timestamp between '2014-10-1 00:00:00' AND '2014-10-7 23:59:59') 
Group by Register.userId, DatePart(week, Register.timestamp), Count(DISTINCT Convert(date, Register.timestamp))

答案 1 :(得分:0)

试试这个

SELECT DISTINCT Register.userId AS "Active Users", Register.timestamp,
  Count(Register.timestamp)
  FROM [dbo].[Register]
  INNER JOIN [dbo].[Users]
  ON Register.userId = Users.id AND Register.organisationId = users.organisationId
  INNER JOIN [dbo].[Organisations]
  ON Register.organisationId = Organisations.id
  where Organisations.id = '1105'  
        AND (log.timestamp between '2014-10-1 00:00:00' AND '2014-10-7 23:59:59') 
Group by Register.userId, Register.timestamp 
相关问题