累计金额平均

时间:2019-02-28 09:09:18

标签: sql sql-server average rollup

我已经将表EMP与其他表连接在一起; EMP具有这样的empname和emplength(以月为单位)

'A' 100
'B' 110
'D' 80
'E' 120

我正在计算每年的平均时长,即每位员工和整体员工除以12。这里的问题是如何使用汇总来计算总体平均数量?

输出应该像这样

'A' 8.33
'B' 9.16
'D' 6.66
'E' 10.00
total 8.54

2 个答案:

答案 0 :(得分:0)

在这种情况下,您不需要ROLLUP。您可以使用UNION ALL来实现此目标,如下所示。

select name, [length] / 12.0
from yourtable
union all
select 'Total', avg(length/12.0)
from yourtable

但是,如果您仍然想使用ROLLUP,可以尝试以下操作。

select name , avg([length])
from
(
    select name, [length] / 12.0 as [length]
    from yourtable
    cross join
    (
     values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)
    ) t(a)
) t
group by  rollup(name)

Online Demo

答案 1 :(得分:0)

您可以使用document.exists()

grouping sets