我希望根据严重程度确定开放bug的平均生存时间(以天为单位)。
<表类>
缺陷严重程度
状态
date_assigned
tbody><<tr>1 打开 2021-9-14 1在 2021-9-15 1固定 2021-9-16 1验证 2021-9-17 1关闭 2021-9-18 2B 打开 2021-10-18 2B 在 2021-10-19 2B 关闭与修复 2021-10-20 3 C 打开 2021-11-20 3 C 评论 2021-11-21 3 C 关闭 2021-11-22 4打开 2021-12-24 4关闭 2021-12-26 表类>
假设有一个"one_answers";close"对于每个bug,您可以使用两个级别的聚合:
select severity,
avg( close_date - open_date ) as avg_days
from (select bug, severity, min(date_assigned) as open_date,
max(date_assigned) as close_date
from table1
where status like '%open%' or
status like '%closed%'
group by bug, severity
) t1
group by severity
order by severity;
注意,不同数据库的日期函数差别很大。数据差异的确切语法可能与上面的不同。
编辑:
在Databricks中,我认为你需要:
select severity,
avg( datediff(close_date, open_date) ) as avg_days