当前位置: 代码迷 >> SQL >> 创造一张表,记录电话呼叫员的工作流水,记录呼叫员编 号、对方号码、通话开始时间、通话结束时间。建表、插数 据等最后都自己写SQL语句
  详细解决方案

创造一张表,记录电话呼叫员的工作流水,记录呼叫员编 号、对方号码、通话开始时间、通话结束时间。建表、插数 据等最后都自己写SQL语句

热度:80   发布时间:2016-05-05 13:00:10.0
创建一张表,记录电话呼叫员的工作流水,记录呼叫员编 号、对方号码、通话开始时间、通话结束时间。建表、插数 据等最后都自己写SQL语句。
(1)输出所有数据中通话时间最长的5条记录。orderby
datediff

select top 5*,DATEDIFF(ss,StartDateTime,EndDateTime) as '通话时间(秒)' from CallRecords order by DATEDIFF(ss,StartDateTime,EndDateTime) desc;

---------------------
  (2)输出所有数据中拨打长途号码(对方号码以0开头
)的总时长。like、sum

select count(*)as'符合条件',sum(DATEDIFF(ss,StartDateTime,EndDateTime))as '总时长' from CallRecords where TelNum like '0%';

---------------------
  (3)输出本月通话总时长最多的前三个呼叫员的编号。
  
select top 3 CallerNumber as '编号',sum(datediff(ss,StartDateTime,EndDateTime)) 
from CallRecords
where datepart(mm,StartDateTime)=datepart(mm,getdate())
group by CallerNumber
order by sum(datediff(ss,StartDateTime,EndDateTime)) desc 

---------------------
(4)输出本月拨打电话次数最多的前三个呼叫员的编号

.group by,count(*)按照月份分组。

select top 3 CallerNumber,count(*)
from CallRecords
where datepart(mm,StartDateTime)=datepart(mm,getdate())
group by CallerNumber
order by count(*) desc
  相关解决方案