【发布时间】:2021-12-30 06:38:55
【问题描述】:
我有多个表,我必须将它们连接在一起才能计算出票已打开多长时间,我正在使用以下查询(我知道很复杂!):
SELECT DISTINCT u_db.environments.name AS Env_name, TIMEDIFF(u_db.tickets.close_date, u_db.tickets.created_date) AS Total_open_time
FROM u_db.tickets
INNER JOIN u_db.ticket_units
ON u_db.tickets.id = u_db.ticket_units.ticket_id
INNER JOIN u_db.units
ON u_db.ticket_units.unit_id = u_db.units.id
INNER JOIN u_db.locations
ON u_db.units.location_id = u_db.locations.id
INNER JOIN u_db.location_groups
ON u_db.locations.locations_group_id = u_db.location_groups.id
INNER JOIN u_db.environments
ON u_db.location_groups.environment = u_db.environments.id
WHERE u_db.tickets.created_date >= '2021-09-01 00:00:00'
AND u_db.tickets.created_date < '2021-10-01 00:00:00'
AND u_db.location_groups.id IN (50,17,46,45,48,49)
AND u_db.tickets.id IN (132357,132361,132372,132473);
注意:close_date 和 created_date 存储为 TIMESTAMP。
这会生成以下输出:
Env_name Total_open_time
GA 27:38:59
GA 01:43:51
GR 04:32:58
GR 49:39:19
但是,我想按 Env_name 分组并对每个组的 Total_open_times 求和,所以我想要的输出是:
Env_name Total_open_time
GA 29:22:50
GR 54:12:17
当我按 Env_name 分组时,我似乎无法得到总和的时间,任何关于如何实现这一点的建议将不胜感激!
【问题讨论】: