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

如何在Oracle SQL中计算结果集的平均日期差值

解决方案

1. 仅获取平均天数差

如果只需要所有符合条件工单的平均处理天数,直接用AVG()聚合函数包裹DTR的计算表达式即可,SQL代码如下:

SELECT
    AVG(TRUNC(SUPPORTCALL.RESOLVEDDATETIME) - TRUNC(SUPPORTCALL.CALLDATETIME)) AS "平均处理天数"
FROM
    SUPPORTCALL,
    PROBLEMTYPE
WHERE
    SUPPORTCALL.PROBLEM_ID = PROBLEMTYPE.PROBLEM_ID
    AND PROBLEMTYPE.PROBLEMCATEGORY = 'VMware'
    AND RESOLVEDDATETIME IS NOT NULL

2. 保留工单明细同时显示平均值

如果需要保留原有所有工单明细,同时额外显示整体的平均处理天数,可以使用窗口函数AVG() OVER():

SELECT
    SUPPORTCALL.CALL_ID "Call ID",
    PROBLEMTYPE.PROBLEMCATEGORY "Problem Category",
    SUPPORTCALL.CALLDATETIME "Opened Date/Time",
    SUPPORTCALL.RESOLVEDDATETIME "Resolved Date/Time",
    TRUNC(SUPPORTCALL.RESOLVEDDATETIME) - TRUNC(SUPPORTCALL.CALLDATETIME) DTR,
    AVG(TRUNC(SUPPORTCALL.RESOLVEDDATETIME) - TRUNC(SUPPORTCALL.CALLDATETIME)) OVER() AS "平均处理天数"
FROM
    SUPPORTCALL,
    PROBLEMTYPE
WHERE
    SUPPORTCALL.PROBLEM_ID = PROBLEMTYPE.PROBLEM_ID
    AND PROBLEMTYPE.PROBLEMCATEGORY = 'VMware'
    AND RESOLVEDDATETIME IS NOT NULL

针对你提供的示例数据,第一种查询会返回(32+1+2+1)/4 = 9的结果;第二种查询会在每一行末尾都显示这个平均值9。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:31:02