我需要一个查询来计算 SQL Server 2005 中每个不同时间戳的用户实例数
I need a query to count the number of user instances for each distinct timestamp in SQL Server 2005
这是我的数据table:
userid timestamp
------------------------
user1 2017-08-15 17:00
user1 2017-08-15 17:00
user1 2017-08-15 17:00
user2 2017-08-15 17:00
user2 2017-08-15 17:00
user3 2017-08-15 17:00
user1 2017-08-15 18:00
user1 2017-08-15 18:00
user2 2017-08-15 18:00
user2 2017-08-15 18:00
user2 2017-08-15 18:00
user3 2017-08-15 18:00
我希望结果如下所示:
userid countoftimestamp
-----------------------------
user1 3_2017-08-15 17:00
user2 2_2017-08-15 17:00
user3 1_2017-08-15 17:00
user1 2_2017-08-15 18:00
等等。
SELECT userid, timestamp, count(*)
FROM datatabable
GROUP BY userid, timestamp
您可能注意到我使用 varchar(16) 将您的时间戳截断为分钟(不包括秒和毫秒)
例子
Select userid
,countoftimestamp = cast(sum(1) as varchar(25))+'_'+convert(varchar(16),timestamp,20)
From YourTable
Group By userid,convert(varchar(16),timestamp,20)
Returns
这是我的数据table:
userid timestamp
------------------------
user1 2017-08-15 17:00
user1 2017-08-15 17:00
user1 2017-08-15 17:00
user2 2017-08-15 17:00
user2 2017-08-15 17:00
user3 2017-08-15 17:00
user1 2017-08-15 18:00
user1 2017-08-15 18:00
user2 2017-08-15 18:00
user2 2017-08-15 18:00
user2 2017-08-15 18:00
user3 2017-08-15 18:00
我希望结果如下所示:
userid countoftimestamp
-----------------------------
user1 3_2017-08-15 17:00
user2 2_2017-08-15 17:00
user3 1_2017-08-15 17:00
user1 2_2017-08-15 18:00
等等。
SELECT userid, timestamp, count(*)
FROM datatabable
GROUP BY userid, timestamp
您可能注意到我使用 varchar(16) 将您的时间戳截断为分钟(不包括秒和毫秒)
例子
Select userid
,countoftimestamp = cast(sum(1) as varchar(25))+'_'+convert(varchar(16),timestamp,20)
From YourTable
Group By userid,convert(varchar(16),timestamp,20)
Returns