发布网友 发布时间:2022-04-23 09:48
共3个回答
热心网友 时间:2022-06-18 20:47
····你的calltype是什么,看你的意思是要把两个日期之间的时间,calltype。平均calltype.弄出来
我不知道你的calltype什么意思,我猜是呼叫类型,那么你的count(呼叫类型)可以理解,时间差/count(呼叫类型)平均每天这个呼叫类型的次数吗?
我先把你现在的改对吧,你试下,看看是不是你要的预计结果。
错误是你用到了组函数,但是没有把select出来的非组函数中的列分组,这样出来的结果并不是你要的
你试试:
select COUNT(calltype),datediff(ss,WORKSTARTTIME,WORKENDTIME ),datediff(ss,CALLSTARTTIME,CALLENDTIME ),
(datediff(ss,WORKSTARTTIME,WORKENDTIME )/COUNT(calltype)),(datediff(ss,CALLSTARTTIME,CALLENDTIME )/COUNT(calltype))
from event
where CALLTYPE=2
group by calltype,WORKSTARTTIME,WORKENDTIME ,CALLSTARTTIME,CALLENDTIME ;
goup by 中你可以去掉calltype试试看结果是不是你要的,我觉得是有问题的。
你可以用临时视图实现,组函数很有用,但是没弄清它的原理很容易出错
select c.counts,datediff(ss,WORKSTARTTIME,WORKENDTIME ),datediff(ss,CALLSTARTTIME,CALLENDTIME ),
(datediff(ss,WORKSTARTTIME,WORKENDTIME )/c.counts),(datediff(ss,CALLSTARTTIME,CALLENDTIME )/c.counts)
from event ,(select count(*) counts from event where CALLTYPE=2 group by calltype ) c
where CALLTYPE=2
没问题了,你试试是不是你要的结果
热心网友 时间:2022-06-18 20:47
在每个datediff外面再加个sum()
然后group by calltype
热心网友 时间:2022-06-18 20:48
count是聚合函数,而datediff是一个取值范围,