我对我的 SQL 有点生疏,也许你可以帮我解决这个问题。
我有这两个用于票务系统的表(我省略了一些字段):
桌票
id - bigint
subject - text
user_id - bigint
closed - boolean
first_message - bigint
(外键,用于下一个表的 id)
last_message - bigint
(和之前一样)
表 ticket_messages
creation_date
我需要查询已关闭的工单,并计算第一条消息创建日期和最后一条消息创建日期之间的平均时间。这是我到目前为止所做的:
SELECT t.id, t.subject, tm.creation_date
FROM tickets AS t
INNER JOIN ticket_messages AS tm
ON tm.id = t.first_message
OR tm.id = t.last_message
WHERE t.closed = true
我正在寻找一些分组或聚合函数来从表中获取所有数据,并尝试计算最后一条和第一条之间花费的时间,还尝试显示第一条和最后一条消息的日期。
更新我用第二个表而不是“OR”添加了一个内部联接,现在我得到了两个日期,我可以从我的应用程序中找到总和:
SELECT t.id, t.subject, tm.creation_date, tm2.creation_date
FROM tickets AS t
INNER JOIN ticket_messages AS tm
ON tm.id = t.first_message
INNER JOIN ticket_messages as tm2
ON tm2.id = t.last_message
WHERE t.closed = true
我认为它做到了...