ID 内容 出现次数
1 qq 5
2 bb 2
3 qq 1
4 cc 3
要变成
ID 内容 出现次数
1 qq 6
2 bb 2
4 cc 3
(说明:"内容"重复的,将出现次数求和,留一条记录)
删除重复的可以,要同总数不怎么弄,而且要效率高的,数据量太大了,所以请教大家
select (select top 1 [ID] from math where txt=a.txt) as id,
a.txt, sum(a.shows) as shows from math a group by txt order by
(select top 1 [ID] from math where txt=a.txt)
表wordstock
字段 :wordstockID(主键) keyword(内容) times(次数)
------------------------------------
--用途:整理wordstock表,重复记录留一条,times(出现次数) 累加
--项目名称:Counts
--说明:Mathew
--时间:2008-5-20 10:38
------------------------------------
CREATE PROCEDURE Counts_WordStock_CheckUP
AS
set xact_abort on
BEGIN TRAN
SELECT * into #temp FROM (SELECT keyword , types,sum(a.times) AS times
FROM wordstock a group by keyword ,types) as cc
DELETE FROM wordstock
INSERT INTO wordstock (keyword,times ,types) SELECT keyword,times,types
FROM #temp
DROP TABLE #temp
IF @@error=0
begin
COMMIT TRAN
RETURN
end
ELSE
begin
ROLLBACK TRAN
RETURN
end
GO
set xact_abort on
begin transaction
语句
if @@error=0
commit else
rollback
Set NOCOUNT ON 选项可防止将会话中每一条语句所影响的行数消息发回给请求的
客户机
SET XACT_ABORT
指定当 Transact-SQL 语句产生运行时错误时,Microsoft® SQL
Server™ 是否自动回滚当前事务。
语法
SET XACT_ABORT { ON | OFF }
注释
当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时
错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL
语句,而事务将继续进行处理。编译错误(如语法错误)不受 SET XACT_ABORT
的影响。
对于大多数 OLE DB 提供程序(包括 SQL Server),隐性或显式事务中的
数据修改语句必须将 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是提供程
序支持嵌套事务时。有关更多信息,请参见分布式查询和分布式事务。
SET XACT_ABORT 的设置是在执行或运行时设置,而不是在分析时设置