汽车司机在街上的不同检查站登记。我想查看司机每周注册一天的次数。
所以我到目前为止的是:
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
我想知道的是每周用户驾驶汽车的次数。用户可以在不同的检查点每天注册多次,但我只对一个注册表示感兴趣,该注册表明该用户在该特定日期使用了该车。
答案 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