Sql 无原点运行计数

Sql 无原点运行计数,sql,sql-server,Sql,Sql Server,当用户登录或注销机器时,我有一个时间戳日志 我想创建一个阶梯图,显示全天同时处于登录状态的用户 我必须完成的一个想法是选择时间戳和以下内容: select TIMESTAMP, case STATUS when LOGIN then +1 when LOGOUT then -1 end as "MOVEMENT" from TABLE 然后对移动执行一个运行总计,它将返回一个并发用户表和时间戳 我遇到的问题是,我无法从一开始就运行此查询,因此我需要某种开始日期

当用户登录或注销机器时,我有一个时间戳日志

我想创建一个阶梯图,显示全天同时处于登录状态的用户

我必须完成的一个想法是选择时间戳和以下内容:

select
  TIMESTAMP,
  case STATUS 
    when LOGIN then +1
    when LOGOUT then -1
  end as "MOVEMENT"
from
  TABLE
然后对移动执行一个运行总计,它将返回一个并发用户表和时间戳

我遇到的问题是,我无法从一开始就运行此查询,因此我需要某种开始日期。但我不知道如何计算截止时间有多少用户。因此,如果我没有选择一个在线用户为零的时间点,或者以在线用户的数量开始计算运行总数,那么我就没有办法计算这个


我有什么遗漏吗?

计算截止点的用户数其实很容易。查询的逻辑只是计算自时间开始以来的登录和注销次数:

select sum(case status when LOGIN then 1 when LOGOUT then -1 end) as NumUsers
from table
where timestamp <= @timestampcutoff;
选择sum(登录时案例状态为1,注销时案例状态为1,然后-1结束)作为提示
从桌子上

谢谢你。我不知道为什么我对简单地计算它如此敏感。现在我只需要弄清楚如何在2008r2中进行一次连续求和。@user38858。可以使用相关子查询。或者,就像我经常做的那样,只需将数据复制到Excel中,然后在那里求和。