SQL怎么把一个表里的值计算后插入到另一个表里?

dingzheng1989 2011-02-18 11:33:28
Table1
-------------
StuCode | Num
=============
001 | 40
-------------
001 | 36
-------------
001 | 89
-------------
002 | 88
-------------
002 | 33
-------------

我想要的结果:
001 有三个Num:40,36,89 ,我想要的是 (40+36+89)/ 3 = 55 (求平均值)。
002 有二个Num:88,33 我想要的是 (88+33) / 2 = 60.5 (求平均值)。

然后把 001 55, 002 60.5 插入Table2里
Table2
--------------
StuCode | Num
==============
001 | 55
--------------
002 | 60.5
--------------
这个SQL语句应该怎么写,小弟有点菜,我只剩下22分,谢谢了。
...全文
352 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingzheng1989 2011-02-18
  • 打赏
  • 举报
回复
Tanks 吃过饭来结贴
快溜 2011-02-18
  • 打赏
  • 举报
回复

--sorry,精确度自己可以改
insert into tb2
select StuCode,cast(avg(Num*1.0) as numeric(18,2)) from tb1 group by StuCode
happy_javaboy 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oraclers 的回复:]
insert Table2(StdCode,Num)
select StdCode,Avg(Num)
from Table1
group by StdCode
[/Quote]
正解。。
Oraclers 2011-02-18
  • 打赏
  • 举报
回复
insert Table2(StdCode,Num)
select StdCode,Avg(Num)
from Table1
group by StdCode
快溜 2011-02-18
  • 打赏
  • 举报
回复

update a set num=b.num
from tb2 a
inner join
(select StuCode,avg(Num) as num from tb1 group by StuCode) b
on a.StuCode=b.StuCode
liang145 2011-02-18
  • 打赏
  • 举报
回复

insert into Table2 select StuCode ,avg(Num) as avgNum from table1 group by StuCode

34,835

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧