要求查询出每部网络电话的通话次数以及每部网络电话的总通话时长
即是查询出如下结果:
网络电话编号 通话次数 总通话时长
21981052 2 00:01:45
21980021 1 00:00:56
21980389 2 00:02:46
21981056 2 00:00:44
--********************************************************
DECLARE @T TABLE (id INT,网络电话编号 INT,通话时长 VARCHAR(8))
INSERT INTO @T
SELECT 1,21981052,'00:01:19' UNION ALL
SELECT 2,21981052,'00:00:26' UNION ALL
SELECT 3,21980021,'00:00:56' UNION ALL
SELECT 4,21980389,'00:02:05' UNION ALL
SELECT 5,21980389,'00:00:41' UNION ALL
SELECT 6,21981056,'00:00:31' UNION ALL
SELECT 7,21981056,'00:00:13'
SELECT 网络电话编号,COUNT(*) AS 通话次数,
convert(varchar(8),dateadd(ss,SUM(DATEDIFF(ss,0,通话时长)),0),108) 通话时长
FROM @T
GROUP BY 网络电话编号
ORDER BY 网络电话编号
/*
网络电话编号 通话次数 通话时长
----------- ----------- --------
21980021 1 00:00:56
21980389 2 00:02:46
21981052 2 00:01:45
21981056 2 00:00:44
(所影响的行数为 4 行)
*/
本文介绍了一种查询网络电话统计数据的方法,包括每部网络电话的通话次数及总通话时长。通过构建临时表并使用SQL聚合函数实现了数据的有效统计。

1万+

被折叠的 条评论
为什么被折叠?



