gpt4 book ai didi

sql - SUM 分钟 SQL 服务器

转载 作者:行者123 更新时间:2023-12-02 08:59:10 24 4
gpt4 key购买 nike

大家好,我的小问题是这样的:我有这样的列:PHONE_NR,TIME(时间字段),意思是主叫电话号码和通话时长。我需要对电话号码进行分组并汇总分钟数。菲尔德看起来像这样:

 nr          time 
726028xxx 00:07:07
735560css 00:07:37
726028xxx 00:07:55

最佳答案

SELECT PHONE_NR, SUM(DATEPART(minute, TIME)) FROM [table] GROUP BY PHONE_NR;

据我所知,这应该适用于 SQL Server DATETIME 和 2008 TIME 数据类型。

示例:

DECLARE @tbl TABLE
(
phone_nr varchar(10),
call_time TIME
);

INSERT INTO @tbl VALUES ('726028xxx', '00:07:07');
INSERT INTO @tbl VALUES ('735560css', '00:07:37');
INSERT INTO @tbl VALUES ('726028xxx', '00:07:55');

SELECT phone_nr, SUM(DATEPART(minute, call_time)) AS total_call_time FROM @tbl GROUP BY phone_nr;

结果:

phone_nr  | minutes
726028xxx | 14
735560css | 7

编辑:

此版本与上述版本相同,只是它还考虑了秒和小时(例如 1 小时 7 分钟 07 秒 = 67.117 分钟),因此更加准确。

SELECT 
phone_nr,
SUM(CAST(DATEPART(second, call_time) + (DATEPART(minute, call_time) * 60) + (DATEPART(hour, call_time) * 3600) AS decimal) / 60) AS total_call_time
FROM
@tbl
GROUP BY
phone_nr;

如果第一条记录是 01:07:07,则结果如下。

phone_nr  | minutes
726028xxx | 75.033332
735560css | 7.616666

关于sql - SUM 分钟 SQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com