You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL:高效计算并发通话数量

通话记录表常见需求解决方案

Hey there, 我明白这是你之前问题的跟进,而且情况有了新变化——没问题,咱们直接切入正题。先把你的表结构明确列出来,这是解决问题的基础:

表字段详情

  • END: 通话结束时间戳(DATE类型)
  • LINE: 线路编号(NUMBER类型)
  • CALLDURATION: 通话时长(单位:秒,NUMBER类型)

既然你没明确说这次要解决的具体问题,我先给你整理几个这类表最常用的操作示例,你可以按需参考:

1. 统计每条线路的总通话时长(转换为易读格式)

如果想计算每条线路的累计通话时长,并转换成小时/分钟/秒的友好格式,用这个SQL就行:

SELECT 
    LINE,
    SUM(CALLDURATION) AS total_seconds,
    FLOOR(SUM(CALLDURATION)/3600) AS total_hours,
    FLOOR((SUM(CALLDURATION) MOD 3600)/60) AS total_minutes,
    SUM(CALLDURATION) MOD 60 AS total_remaining_seconds
FROM 
    your_call_table
GROUP BY 
    LINE
ORDER BY 
    total_seconds DESC;

2. 按日期拆分统计每条线路的通话时长

要是需要按日期(基于END时间戳)来拆分数据,看看每天每条线路的通话情况,这个查询可以帮到你:

SELECT 
    TRUNC(END) AS call_date,
    LINE,
    SUM(CALLDURATION) AS daily_total_seconds
FROM 
    your_call_table
GROUP BY 
    TRUNC(END), LINE
ORDER BY 
    call_date DESC, LINE;

3. 找出单条最长通话记录

想找到表中时长最长的那通电话,连带线路和结束时间,用这个语句:

SELECT 
    END,
    LINE,
    CALLDURATION
FROM 
    your_call_table
WHERE 
    CALLDURATION = (SELECT MAX(CALLDURATION) FROM your_call_table);

如果你的新情况里有特定需求(比如处理重叠通话、筛选某段时间范围、或者其他逻辑),随时补充细节,我再帮你调整方案!


内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:12:09