当前位置: 首页 > 知识库问答 >
问题:

SQL:将呼入时长/天相加,将同表中的呼出时长/天相加

秦阳旭
2023-03-14

我快疯了...我无法将两个COLLUM求和得到一个包含每天来电持续时间和去话持续时间之和的resulttable。

我的电话桌是这样的

|date       |duration    |direction|number       |time    |device |
|2021-04-1  |2           |1        |123456       |01:00   |phone1 |
|2021-04-1  |10          |2        |789012       |01:15   |phone2 |
|2021-04-2  |25          |1        |123456       |11:00   |phone1 |
|2021-04-2  |10          |2        |789012       |12:15   |phone2 |
...
...

我的结果应该是这样的

|date       |intotal    |outtotal|
|2021-04-1  |2          |10      |      
|2021-04-2  |25         |10      | 
...
...

目前,我使用3个视图(伪代码

View 1. select date, sum(duration) from calls where direction = 1 group by date
View 2. select date, sum(duration) from calls where direction = 2 group by date
View 3. select out.date AS date,in.duration AS intotal, out.duration AS outtotal
                 from view1 as out left join view2 as in on (out.date = in.date) 
//and a union right join with the same statement if there is no in or outcoming call on a day

但这不可能是最终的解决办法...只要一个声明就可以了。谁能给我一个正确方向的提示吗?

(我正在运行一个MariaDB 10.1.47)

共有1个答案

张积厚
2023-03-14

如果我没有理解错,您想要条件聚合:

select date,
       sum(case when direct = 1 then duration end) as in_duration,
       sum(case when direct = 2 then duration end) as out_duration
from calltable
group by date;
 类似资料:
  • null 使用服务,从源传入的“聊天”从ResourcePool中获取“ChatAgent”[with resourceUnit“ChatAgent”]。在这个模型中,一个“chatagent”只接受服务块内的一个“chat”。 抓取上的资源池:Unit.TotalCapability--;发布时:Unit.TotalCapability++; 但是我不能像在一个真正的聊天呼叫中心那样,建立一个“

  • 问题内容: 在使用pygame编写的图形程序中,我使用表示如下坐标的元组:(50,50)。 有时,我调用一个函数,该函数返回另一个元组,例如(3,-5),它表示坐标的变化。 将更改值添加到坐标值的最佳方法是什么。如果可以做一些坐标+ = change的工作,那将是很好的选择,但是看起来这将把两个元组简单地连接为(50,50,3,-5)之类的东西。而不是将第一个值与第一个值相加,将第二个值与第二个值

  • 本文向大家介绍JavaScript实现给定时间相加天数的方法,包括了JavaScript实现给定时间相加天数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现给定时间相加天数的方法。分享给大家供大家参考,具体如下: 当然,除了这种方式之外,还有其他的,类似于new Date传参之类的解决方案,这也算是一种吧 更多关于JavaScript时间与日期操作相关内容感兴

  • 我知道实现类似的最简单的方法是使用拨号动词重定向来电,但原因与问题并不相关,这是不可能的。

  • 我有两种日期格式,一种是字符串“yyyy-mm-dd'hh:mm:ss.sssz”,另一种是长的“yyyymmddhhmmsssss”。我想把它转换成这个格式“yyyy-mm-dd hh:mm:ss”,它转换成功了,但是当我打印date.getTime()时 对于第一个->1416490009109 用于秒->20141120121211800 代码: 对于第二个