首页 新闻 会员 周边

sqlserver2008如何将group by分组之后的数据单独写入到不同数据表

0
悬赏园豆:10 [已解决问题] 解决于 2012-12-29 11:27

在数据库中有一张学生表,其中有字段age,我现在想做的事情是:使用age分组,然后将分组后的每一个小组分别写入到不同的数据表中?并且数据表是以不同的age命名?这个用T-sql如何实现呢 ?

< >
分享
最佳答案
0

select age,count(*) as agecount from 表 group by age

再通过游标一行一行操作

收获园豆:10
Rich.T | 老鸟四级 |园豆:3440 | 2012-12-28 11:09

对于大数据来说,游标是不是不太高效?

mengfeig | 园豆:179 (初学一级) | 2012-12-28 11:25

@mengfeig: 

你这里有一个限定条件,T-SQL

如果你觉得游标效率不好,那你就通过程序代码,把相关SQL拼起来,再一次性执行

比如你在程序里用一个列表得到select age,count(*) as agecount from 表 group by age这样的数据,再循环操作,把相关的SQL拼起来,再一次性运行

Rich.T | 园豆:3440 (老鸟四级) | 2012-12-28 11:29

@Rich.T: 哦。我有一个想法是:使用临时表存储分组后的数据,然后从临时表中取出每一组的数据使用存储过程写入到单独的数据表中。

mengfeig | 园豆:179 (初学一级) | 2012-12-28 11:36

@mengfeig: 

有什么意义,你还不是得一行一行读取数据,如果你分多个临时表的话,效率会慢得一B,还不如用游标

Rich.T | 园豆:3440 (老鸟四级) | 2012-12-28 12:18

@Rich.T: 好吧,我试验下。。

mengfeig | 园豆:179 (初学一级) | 2012-12-28 13:26
其他回答(3)
0

写个存储过程,传入参数,然后在这个存储过程中拼接sql,然后就行了啊

insert into 目标表

select 字段

from 源表

group by 源表字段

其中目标表和源表字段都可以是参数

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-28 11:09

能写下具体的代码吗?还是不太明白

支持(0) 反对(0) mengfeig | 园豆:179 (初学一级) | 2012-12-28 11:24
0

用游标

成功在于专注 | 园豆:202 (菜鸟二级) | 2012-12-28 15:01
0

用游标吧

妍珊 | 园豆:1169 (小虾三级) | 2012-12-28 16:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册