【问题标题】:Count call types by week, grouped by type, to identify trends按周计算呼叫类型,按类型分组,以识别趋势
【发布时间】:2015-02-13 18:48:55
【问题描述】:

我有另一个查询要再次按周分组。

因此,下面的第一个代码摘录根据某个固定代码计算了所有调用类型。我正在尝试按周和/或天有效地将这些分组,以便我可以根据呼叫类型识别呼叫号码的趋势。

SELECT count(*),substr(FIXCODE,1,4) FROM opencall
WHERE (opencall.status > 15 OR opencall.status = 6) 
and FIXCODE like 'HPS0%'
and trunc(to_date(substr(CLOSEDATE,1,10), 'DD-MM-YY')) BETWEEN '01-JAN-14' AND '24-DEC-14' 
GROUP BY substr(FIXCODE,1,4)

这会返回

Count   FixCode 
2425    HPS0

因此,这是自 1 月 1 日以来以 HPS0 修复代码开始的所有调用的计数。

我之前的一段代码由 StackOverflow 上的另一个非常有用的小伙完成,见下文,它对原始调用进行分组并按周计算它们,但我不知道如何将两者结合起来。

最好将 2425 个 HPS0 调用细分为几周,这样我就可以看到每周有多少调用被关闭以了解趋势。任何人都可以帮忙吗?我也想白天做。

select 
'WEEK '|| row_number() over(order by trunc(NEXT_DAY(to_date(substr(LOGDATE,1,10), 'DD-MM-YY'),'FRIDAY'), 'IW')) WEEK,
count(*) 
from opencall
where trunc(to_date(substr(LOGDATE,1,10), 'DD-MM-YY')) BETWEEN '01-JAN-14' AND '31-DEC-14'
group by trunc(NEXT_DAY(to_date(substr(LOGDATE,1,10), 'DD-MM-YY'),'FRIDAY'), 'IW')   
order by trunc(NEXT_DAY(to_date(substr(LOGDATE,1,10), 'DD-MM-YY'),'FRIDAY'), 'IW');

【问题讨论】:

    标签: sql oracle count group-by


    【解决方案1】:

    如果您想按周查看值,请将周添加到group by

    SELECT to_char(closeddate, 'YYYY-IW'), substr(FIXCODE, 1, 4), COUNT(*)
    FROM opencall
    WHERE (opencall.status > 15 OR opencall.status = 6) 
    and FIXCODE like 'HPS0%'
    and trunc(CLOSEDATE) BETWEEN '01-JAN-14' AND '24-DEC-14' 
    GROUP BY to_char(closeddate, 'YYYY-IW'), substr(FIXCODE, 1, 4)
    ORDER BY  to_char(closeddate, 'YYYY-IW')
    

    大概closeddate 已经是一个日期,所以你不需要将它转换回一个日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      相关资源
      最近更新 更多