原表:
deptname teamname smoney teamrs rate
大哥 ss1 47368 11 0.5742
大哥 ss2 15630 13 0.1603
二弟 ss3 60000 null null
三弟 ss4 73458 8 1.2243
三弟 ss5 123290 8 2.0548
三弟 ss6 43180 5 1.1515
三弟 ss7 26080 5 0.6955
三弟 ss8 130540 5 3.4811
三弟 ss9 97150 6 2.1589
三弟 ss10 49023 6 1.0894
三弟 ss11 3760 null null
三弟 ss12 14500 6 0.3222
三弟 ss13 9613 6 0.2136
小师妹 ss14 19890 5 0.5304
小师妹 ss15 19930 5 0.5315
小师妹 ss16 60000 5 1.6要求:根据deptname分组,统计sum(smoney)/sum(teamrs)放在后面的列,要出现如下结果:
deptname teamname smoney teamrs rate rate2
大哥 ss1 47368 11 0.5742 2426
大哥 ss2 15630 13 0.1603 2426
二弟 ss3 60000 null null null
三弟 ss4 73458 8 1.2243 10374
三弟 ss5 123290 8 2.0548 10374
三弟 ss6 43180 5 1.1515 10374
三弟 ss7 26080 5 0.6955 10374
三弟 ss8 130540 5 3.4811 10374
三弟 ss9 97150 6 2.1589 10374
三弟 ss10 49023 6 1.0894 10374
三弟 ss11 3760 null null 10374
三弟 ss12 14500 6 0.3222 10374
三弟 ss13 9613 6 0.2136 10374
小师妹 ss14 19890 5 0.5304 6654
小师妹 ss15 19930 5 0.5315 6654
小师妹 ss16 60000 5 1.6 6654
deptname teamname smoney teamrs rate
大哥 ss1 47368 11 0.5742
大哥 ss2 15630 13 0.1603
二弟 ss3 60000 null null
三弟 ss4 73458 8 1.2243
三弟 ss5 123290 8 2.0548
三弟 ss6 43180 5 1.1515
三弟 ss7 26080 5 0.6955
三弟 ss8 130540 5 3.4811
三弟 ss9 97150 6 2.1589
三弟 ss10 49023 6 1.0894
三弟 ss11 3760 null null
三弟 ss12 14500 6 0.3222
三弟 ss13 9613 6 0.2136
小师妹 ss14 19890 5 0.5304
小师妹 ss15 19930 5 0.5315
小师妹 ss16 60000 5 1.6要求:根据deptname分组,统计sum(smoney)/sum(teamrs)放在后面的列,要出现如下结果:
deptname teamname smoney teamrs rate rate2
大哥 ss1 47368 11 0.5742 2426
大哥 ss2 15630 13 0.1603 2426
二弟 ss3 60000 null null null
三弟 ss4 73458 8 1.2243 10374
三弟 ss5 123290 8 2.0548 10374
三弟 ss6 43180 5 1.1515 10374
三弟 ss7 26080 5 0.6955 10374
三弟 ss8 130540 5 3.4811 10374
三弟 ss9 97150 6 2.1589 10374
三弟 ss10 49023 6 1.0894 10374
三弟 ss11 3760 null null 10374
三弟 ss12 14500 6 0.3222 10374
三弟 ss13 9613 6 0.2136 10374
小师妹 ss14 19890 5 0.5304 6654
小师妹 ss15 19930 5 0.5315 6654
小师妹 ss16 60000 5 1.6 6654
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([deptname] varchar(6),[teamname] varchar(4),[smoney] int,[teamrs] int,[rate] numeric(5,4))
insert [tb]
select '大哥','ss1',47368,11,0.5742 union all
select '大哥','ss2',15630,13,0.1603 union all
select '二弟','ss3',60000,null,null union all
select '三弟','ss4',73458,8,1.2243 union all
select '三弟','ss5',123290,8,2.0548 union all
select '三弟','ss6',43180,5,1.1515 union all
select '三弟','ss7',26080,5,0.6955 union all
select '三弟','ss8',130540,5,3.4811 union all
select '三弟','ss9',97150,6,2.1589 union all
select '三弟','ss10',49023,6,1.0894 union all
select '三弟','ss11',3760,null,null union all
select '三弟','ss12',14500,6,0.3222 union all
select '三弟','ss13',9613,6,0.2136 union all
select '小师妹','ss14',19890,5,0.5304 union all
select '小师妹','ss15',19930,5,0.5315 union all
select '小师妹','ss16',60000,5,1.6
---查询---
select a.*,b.rate2
from
tb a
left join
(select deptname,sum(smoney)/sum(teamrs) as rate2 from tb group by deptname) b
on
a.deptname=b.deptname---结果---
deptname teamname smoney teamrs rate rate2
-------- -------- ----------- ----------- ------- -----------
大哥 ss1 47368 11 .5742 2624
大哥 ss2 15630 13 .1603 2624
二弟 ss3 60000 NULL NULL NULL
三弟 ss4 73458 8 1.2243 10374
三弟 ss5 123290 8 2.0548 10374
三弟 ss6 43180 5 1.1515 10374
三弟 ss7 26080 5 .6955 10374
三弟 ss8 130540 5 3.4811 10374
三弟 ss9 97150 6 2.1589 10374
三弟 ss10 49023 6 1.0894 10374
三弟 ss11 3760 NULL NULL 10374
三弟 ss12 14500 6 .3222 10374
三弟 ss13 9613 6 .2136 10374
小师妹 ss14 19890 5 .5304 6654
小师妹 ss15 19930 5 .5315 6654
小师妹 ss16 60000 5 1.6000 6654(所影响的行数为 16 行)警告: 聚合或其它 SET 操作消除了空值。