汇总金额平均值

问题描述 投票:0回答:2

我表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
sql sql-server average rollup
2个回答
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


0
投票

你可以使用grouping sets

select coalesce(empname, total) as empname, avg(emplength)
from . . .
group by grouping sets (empname, ());
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.