【问题标题】:MySQL query to calculate the time taken for a person to work on a ticketMySQL 查询计算一个人处理工单所花费的时间
【发布时间】:2014-05-19 02:48:18
【问题描述】:

我对这个门户很陌生。 如果我的问题似乎不完美,请见谅。

我有两个表 A 和 B 有 1:n 关系,以 id 作为外键。 B 表会在票证更新时捕获历史记录。

我希望为预期结果编写查询,如下所示:

Ticket-ID(A) Ticket Name(A) 耗时(B) 5 ABCD 差值(关票时间-开票时间)

可能是在 B 表中使用 A 表中的相同外键的两个条目中寻找时间差异

我已经尝试过连接,但正在为此寻找更优化的查询。

感谢任何建议。 谢谢

【问题讨论】:

  • 您可以使用子查询而不是连接。第一个目标应该是正确的答案。如果您通过多种方式获得它,请使用 MySQLs EXPLAIN 找出哪个更高效。
  • 这些时间是否附加了 SLA?考虑时钟可能从 0600 运行到 1800,然后在 1800 停止,直到第二天早上 0600 才恢复,这是否重要?

标签: mysql select join


【解决方案1】:

这样的东西应该能够计算给定票证的最早和最新更新。字段名称是假定的,但应该会给您这个想法。

SELECT
    a.ticket_id AS ticket_id,
    MIN(b.update_timestamp) AS first_update,
    MAX(b.update_timestamp) AS last_update,
FROM a
INNER JOIN b
    ON a.ticket_id = b.ticket_id
WHERE a.ticket_id = ?
GROUP BY a.ticket_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-08
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2022-06-22
    • 1970-01-01
    相关资源
    最近更新 更多