insert into test(id,name,age,num) select name,age,sum(num) as num from tt group by name,age union select id from tt
补充,我想将tt表中的数据复制到test中,但是test表的id是唯一的,但不是自动生成或自增,而tt表中的id是自增的,比如
tt表
id  name  age  num
1   aa    11   2
2   bb    12   2
3   cc    11   3
4   aa    11   4
5   bb    12   -1
复制到表test中呈现
id  name  age  num
4   aa    11   6
2   bb    12   1
3   cc    11   3
表test中的那个id是从表tt中取的,例如,aa的复制到test中时id可以是1,也可以是4.
请多多指教,在线等……

解决方案 »

  1.   


    insert into test(id,name,age,num) 
    select min(id),name,age,sum(num) from tt group by name,age
      

  2.   

    补充,id的那个列,不是仅仅就是数字,可能是varchar类型
      

  3.   

    就用1楼的sql语句
    oracle中的min(),Max()函数,针对Vachar 或 char是按照从左到右的顺序每个字符逐位转化为Ascii码比较大小的.所以也是可以用的.
      

  4.   


    insert into test(id,name,age,num) 
    select max(id),name,age,sum(num) from tt group by name,age
      

  5.   

     group by name,age 这种情况下是不是 name 和 age 必须是一一对应的啊?