计算时间间隔内的值

count values over time interval

有人可以协助 SQL 查看。

我有一个名为 LoginActivity

的 table
CREATE TABLE [dbo].[LoginActivity](
[LoAc_ActivityID] [int] IDENTITY(1,1) NOT NULL,
[LoAc_UserID] [int] NULL,
[LoAc_Login] [datetime] NULL,
[LoAc_logout] [datetime] NULL,
[LoAc_Duration] [numeric](24, 6) NULL,
)

其中记录了login/logout次用户id和returns次数据如下。

779     1   2017-11-03 08:07:41.000  2017-11-03 08:09:14.000    1.000000
780     1   2017-11-04 08:09:19.000  2017-11-04 08:27:19.000    17.000000
781     2   2017-11-04 08:27:22.000  2017-11-04 08:35:11.000    7.000000
782     3   2017-11-04 08:35:18.000  2017-11-04 08:58:12.000    19.000000
783     4   2017-11-04 08:35:22.000  2017-11-04 08:58:12.000    19.000000

我需要创建一个视图来计算 LoAc_Login 在过去 1 小时、2 小时、3 小时和最后 4 小时内的用户数。我想呈现如下数据。

 WithinHour  1HourAgo 2HoursAgo 3HoursAgo 4HoursAgo
 2           3        5         0         2

谢谢。

有点像;

SELECT 
    sum(CASE WHEN DATEDIFF(H,getdate(),LoAc_Login) >= 0 AND DATEDIFF(H,getdate(),LoAc_Login) < 1 THEN 1 ELSE 0 END AS WithinHour,
    sum(CASE WHEN DATEDIFF(H,getdate(),LoAc_Login) >= 1 AND DATEDIFF(H,getdate(),LoAc_Login) < 2 THEN 1 ELSE 0 END AS OneHourAgo,
    etc. 
FROM LoginActivity

未测试,语法可能因快速输入而偏离,但希望您明白了吗?