每分钟的重叠量

swvgeqrz  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(270)

我想做一个sql语句,以便按日期和时间查找使用某个频道的用户数量。我举个例子:
我们称之为表数据:

Date        Start   End 
01.01.2020  17:00   17:30   
01.01.2020  17:01   17:03   
01.01.2020  17:29   18:30

数据是一个表,显示用户何时启动通道上的连接以及连接关闭的时间。连接可以在任何时间进行,也就是从00:00到第二天。
我要做的是计算一段时间内建立的最大连接数。比如说2月1日到4月1日。
我的想法是在excel中创建另一个带有时间戳的表。该表将显示特定日期中每分钟的时间戳。
然后我试着说:

SELECT *
FROM Data,Timestamps
WHERE Timestamps.Time BETWEEN Data.Start AND Data.End.

从逻辑上讲,这句话做了该做的事。唯一的问题是,它不是真正的性能,因此没有完成。随着时间戳和数据量我必须检查它是无法完成。
有人能帮我解决这个问题吗?我还有什么想法可以尝试,或者如何改进我的陈述?
当做!

1l5u6lss

1l5u6lss1#

那么,为什么要在excel中创建另一个表而不是直接在ms access中创建,然后为什么不正确设置时间戳的索引呢。这将通过各种因素加速发展。
顺便说一句,我认为你的声明将打印重复每一个用户发生匹配你的开始。。结束期间,因此生成的行的数量将是巨大的。你宁可试一试

SELECT Timestamps.Time, COUNT(*) 
FROM Data,Timestamps
WHERE Timestamps.Time BETWEEN Data.Start AND Data.End
GROUP BY Timestamps.Time;

但是如果ms access中的语法不同,那就很抱歉了。

相关问题