我还有另一个查询,我想再按周分组。
因此,下面的第一个代码摘录会根据某个修复代码计算所有调用类型。我正在尝试按周和/或每天对这些进行有效分组,以便根据呼叫类型识别呼叫号码的趋势。
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');
答案 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
已经是一个日期,因此您无需将其转换回日期。