gpt4 book ai didi

mysql - 优化查询获取每个订阅者一天的总通话时长

转载 作者:行者123 更新时间:2023-11-29 00:31:27 25 4
gpt4 key购买 nike

我有从具有以下结构的表 call_details 创建的 View HW02。

pri_key |电话号码 |叫做_no |回答日期时间|持续时间

而且我必须找出每个订户在一天内通话的总时长。并将 View 创建为

create view hw02 as 
select calling_no, day(answer_date_time) as days,duration from call_details;

然后我将每个订阅者每天的 total_duration 计算为

select a.calling_no,a.days,sum(b.duration) 
from hw02 as a, hw02 as b
where a.calling_no=b.calling_no and a.days=b.days;

执行此查询需要花费大量时间。所以我的问题是如何优化这个查询。 (数据:- 大约 150,000 行)

最佳答案

试试这个,应该会更快并达到你的目的

SELECT
calling_no,
DATE(answer_date_time) as day,
SUM( duration )
FROM
call_details
GROUP BY
calling_no,
DATE(answer_date_time)

view 上的 self-join 在您的情况下是不需要的,我们想要的只是 user 调用的总持续时间其他 users,按 date 分组。

call 持续时间,我想对于特定的 call 来说,calledcalling 是一样的用户(记录)。你使用的 day() 函数不会返回正确的 results,如果你有多个月的数据,因此我使用了 date 代替函数

更多关于 mysql 中的日期时间函数,https://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html

关于mysql - 优化查询获取每个订阅者一天的总通话时长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16318617/

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