【问题标题】:mysql - calculating columns(2 columns with numbers) based on another group of column(text)mysql - 根据另一组列(文本)计算列(2列数字)
【发布时间】:2018-04-17 08:38:56
【问题描述】:

您好,我想查找以下查询,我正在尝试计算两列之间的数据,但是基于另一列,该列需要是选定的相同值组

未过滤

开始时间________断开时间______信令IP

12:59:00.3________13:26:03.3___________1.1.1.1

10:59:00.3________11:03:03.3_______________2.2.2.2

19:59:00.3________20:02:03.3___________1.1.1.1

过滤

开始时间________断开时间______信令IP

12:59:00.3________13:26:03.3___________1.1.1.1

19:59:00.3________20:02:03.3___________1.1.1.1

如果您看到上表,我只想要选定的 IP,即 1.1.1.1,然后从那里计算该出口 IP 的开始时间和断开连接时间的总持续时间。

所以第 3 列有多个值,但是我需要选择相同的值,然后从那里根据第 3 列计算第 1 列和第 2 列的总和。

如果您有任何想法,请告诉我,因为我尝试了多个查询但无法找到正确的查询

【问题讨论】:

  • 如果你能给出一个最小的例子——数据结构和一些行以及你所期望的会容易得多
  • 您好,抱歉,我已添加到图片中,如果有帮助请告诉我
  • 您能否将示例数据和预期输出作为文本添加到问题中。
  • 嗨@P.Salmon,请查看修改后的问题,我已经添加了示例数据以及需要做什么
  • 我们不能使用图像(我们中的一些人不会输入它们) - 文字更好

标签: mysql multiple-columns calculation


【解决方案1】:

计算时间之间的差异。 您可以使用 time_to_sec 将每个时间值转换为秒 并从结束时间中减去开始时间以获得以秒为单位的时间段。 你用 SEC_TO_TIME 把它转回时间格式 例子

select
column3,
SEC_TO_TIME(sum(TIME_TO_SEC(column2) - TIME_TO_SEC(column1))
from 
table 
group by column3

【讨论】:

  • 您好,非常感谢,但是我将如何过滤第 3 列以使其成为同一组值,并且我想计算时间差,我现在尝试一下,让您知道
  • 使用 where column3 = "uer ip"
  • 我得到的值是 1030157,那会是什么输出?
  • 嗨,是的,我使用了该命令,但是我花费了总时间并使用 convertworld.com/en/time/seconds.html 将秒转换为小时或分钟等,或者我得到的输出不应该是像那样?
  • 您的 sql 查询有问题,请发布这部分查询
猜你喜欢
  • 1970-01-01
  • 2021-04-12
  • 2017-08-20
  • 2020-11-09
  • 1970-01-01
  • 2019-02-11
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多