TABLE A
id name count year color
1 hmily 1 2001 bule
2 hmily 2 2001 bule
3 jack 1 2011 black
4 rose 3 2002 bule
5 rose 4 2002 bule
6 rose 3 2003 bule要求 将 name year color 相同的记录合并,保留count的sum值即可,然后删除重复数据。
即最后应该是
1 hmily 3 2011 bule
3 jack 1 2011 bule
4 rose 7 2002 bule
6 rose 3 2003 bule
可以是多条语句 如何sql 谢谢
id name count year color
1 hmily 1 2001 bule
2 hmily 2 2001 bule
3 jack 1 2011 black
4 rose 3 2002 bule
5 rose 4 2002 bule
6 rose 3 2003 bule要求 将 name year color 相同的记录合并,保留count的sum值即可,然后删除重复数据。
即最后应该是
1 hmily 3 2011 bule
3 jack 1 2011 bule
4 rose 7 2002 bule
6 rose 3 2003 bule
可以是多条语句 如何sql 谢谢
解决方案 »
- ORA-12505,orcale问题
- 64位Linux上安装64位Oracle11g以后会出现重启的不稳定现象
- 表中关于批量比较修改时间的问题
- 请教各位: 如何解决在unix下使用sql loader将数据导入oracle后,导入数据在数据库中乱码的问题?
- PLSQL DEVELOPER 中调试存储过程时如何跟踪变量的值啊??
- sql*plus登陆不进去了!!
- 请各位高手进来看看这个select语句怎么结果是空的??????
- 请问哪位有有关SQL语言叙述文档,最好是英文版的
- 这句sql语句有什么问题吗?我的数据库是oracle的
- 从oracle导入到mssql,导入导出工具连接数据库之后出现几千个对象,但没有目标表
- oracle从远程机单个用户导出到本地
- Oraccle 安装后没服务,在线等。。
--創建臨時保存記錄的表
create table A_copy as
select min(id) id,name,sum("count"),year,color
from A
group by name,year,color;
--清除表A
truncate table A;
--新增記錄
insert into A select * from A_copy;
--刪除表
drop table A_copy;
select min(id) id,name,sum("count") "count",year,color --少個列名
select min(id) id,name,sum(count) count,year,color
group by name,year,color;
这样只要year color name 不变 表加其他的字段 都可以不变sql
--update
update A set count=(select count from (select min(id) id,name,sum(count) count,year,color
from A
group by name,year,color) t1
where A.name=t1.name and A.year=t1.year and A.color=t1.color and A.id=t1.id);
--delete
delete A where id>(select min(id) from A t1 where A.name=t1.name and A.year=t1.year and A.color=t1.color);