gpt4 book ai didi

MySQL CDR 并发调用查询

转载 作者:行者123 更新时间:2023-11-29 22:14:49 24 4
gpt4 key购买 nike

我正在尝试构建一个查询来并发调用我上传到 MySQL 的 Asterisk CDR。

我已经尝试了位于这些线程上的以下示例:
mysql query - peak concurrent calls CDR data但我的结果并没有达到我的预期。
fetch max number of concurrent phone calls from call_log这似乎需要很长时间,而且结果也不是我所期望的。

我什至无法重写它们,因为基础不是我所期望的,所以我什至不知道从哪里开始。

我想要的是以下内容:
1 - 查询当天整个系统的峰值调用

2015-06-01 | 134

2 - 查询以获取选定时间段内前 10 个并发调用的次数列表。

 2015-06-01 9:32:21 | 50
2015-06-01 10:15:11 | 43
2015-06-01 15:45:14 | 40
.......

我还有其他复杂的查询,但现在这可以让我开始。

最终,我希望获得指定日期的最大并发调用数,其中 src 或 dst 等于指定 DID 池

我的MySQL数据库的格式为

source  destination     calldate    endtime     duration    uniqueid 

感谢任何帮助。

最佳答案

以下是查找指定日期最大并发调用数所需的查询。

SET @Start = '2015-12-03 00:00:00';
SET @END = '2015-12-03 23:59:59';
SET @SRC = ('DID1','DID2');
SET @DST = ('DID3','DID4');
SELECT DATE(calldate) as 'Date',
MAX((SELECT COUNT(*) FROM cdr c2 WHERE (c2.source IN @SRC or c2.destination IN @DST ) and c2.calldate between @Start and @END AND UNIX_TIMESTAMP(c1.calldate) BETWEEN UNIX_TIMESTAMP(c2.calldate) AND (UNIX_TIMESTAMP(c2.calldate)+c2.duration))) AS 'Channels'
FROM cdr c1 WHERE (c1.source IN @SRC or c1.destination IN @DST ) and c1.calldate between @Start and @END GROUP BY 1;

请通过手动添加 DID 列表来修改 @SRC 和 @DST。或者您可以在@SRC和@DST的位置手动添加DID列表。

关于MySQL CDR 并发调用查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31293909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com