【发布时间】:2021-10-14 10:18:24
【问题描述】:
我有以下疑问:
SELECT machine, start_date, sum(duration),
st.status_code, st.status_text
FROM er_table er
LEFT JOIN status_table st on er.status_code=st.status_code
where machine in ('mach1','mach2','mach3')
group by machine, start_date, st.status_code, st.status_text
order by machine, start_date, status_text
它产生以下结果:
但是,我需要为特定日期的机器组添加一个百分比。例如。 9 月 15 日,mach1 空闲了 20 秒,因此,20/(20+800) 会给我 2% 的空闲时间。
这是我需要得到的结果:
我从类似的帖子中看到了一个类似的问题,我修改了我的代码如下,但它并没有完全给出我正在寻找的结果:
SELECT machine, start_date, sum(duration),
SUM(duration) * 100.0 / SUM(SUM(duration)) OVER () AS Percentage,
st.status_code, st.status_text
FROM er_table er
LEFT JOIN status_table st on er.status_code=st.status_code
where machine in ('mach1','mach2','mach3')
group by machine, start_date, st.status_code, st.status_text
order by machine, start_date, status_text
非常感谢任何帮助。谢谢。
【问题讨论】:
标签: mssql-jdbc