首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算连续并发调用SQL Server

计算连续并发调用SQL Server
EN

Stack Overflow用户
提问于 2020-12-08 04:49:09
回答 2查看 87关注 0票数 0

我只有基本的SQL技能,希望有人能帮我。我正在使用SQL Server尝试提出一个查询,以计算每天在同一时间发生的连续并发调用。我的公司只有300个并发呼叫的许可证,并试图找出我们每天达到的最大点数。基本上,如果3个人在9:00通话,所有3个通话在9:15结束,则计数为3。如果另一个通话发生在9:05,在9:20结束,则计数为4,但在9:16,计数仅为1。

我有一个表(conferencecall2),其中包含以下列:

代码语言:javascript
复制
CallID, UniqueCallID, Jointime, Leavetime 

我们每天大约会接到5000-6000个电话

下面是一些数据的示例。

EN

回答 2

Stack Overflow用户

发布于 2020-12-08 05:08:54

这里的关键是创建(或生成)一个表,每个时间段对应一行。然后它是一个简单的应用或标量子查询:

代码语言:javascript
复制
select t.minute, c.calls
from time_table_with_one_row_per_minute t
cross apply
(
  select count(*) calls
  from calls c
  where t.Minute >= c.JoinTime
    and t.Minute <= c.LeaveTime
) c
票数 0
EN

Stack Overflow用户

发布于 2020-12-08 05:13:02

您可以通过取消透视列,然后使用窗口函数来完成此操作:

代码语言:javascript
复制
select x.call_time, sum(sum(x.cnt_calls)) over(order by x.call_time) as cnt
from conferencecall2 c
cross apply (values (c.jointime, 1), (c.leavetime, -1)) as x(call_time, cnt_calls)
group by x.call_time

这个解决方案只扫描一次表,所以我希望它能在大型数据集上高效地执行。

编辑:通过另一个级别的子查询,您可以获得每天并发调用的峰值:

代码语言:javascript
复制
select convert(date, call_time) as call_day, max(cnt) as peak_cnt
from (
    select x.call_time, sum(sum(x.cnt_calls)) over(order by x.call_time) as cnt
    from conferencecall2 c
    cross apply (values (c.jointime, 1), (c.leavetime, -1)) as x(call_time, cnt_calls)
    group by x.call_time
) c
group by convert(date, call_time)

编辑2

如果要过滤,则需要在外部查询中执行此操作:

代码语言:javascript
复制
select convert(date, call_time) as call_day, max(cnt) as peak_cnt
from (
    select x.call_time, sum(sum(x.cnt_calls)) over(order by x.call_time) as cnt
    from conferencecall2 c
    cross apply (values (c.jointime, 1), (c.leavetime, -1)) as x(call_time, cnt_calls)
    group by x.call_time
) c
where call_time >= @endtime and call_time < @endtime
group by convert(date, call_time)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65189150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档