按周计算呼叫类型,按类型分组,以识别趋势

时间:2014-12-15 15:56:50

标签: sql oracle count group-by

我还有另一个查询,我想再按周分组。

因此,下面的第一个代码摘录会根据某个修复代码计算所有调用类型。我正在尝试按周和/或每天对这些进行有效分组,以便根据呼叫类型识别呼叫号码的趋势。

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');

1 个答案:

答案 0 :(得分:0)

如果您希望按周查看值,请在一周中添加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已经是一个日期,因此您无需将其转换回日期。