sql server 统计数据库中某个字段的值,剔除重复数据,sqlserver
有的时候,在数据库中存在一些重复的数据,但是我们又想统计某个字段的值,重复的要剔除掉,如图所示:
在上面的图我们可以看到,id=2,3 id=4,5的4条数据都重复了,我们统计amount只要其中的一条。sql语句如下:
select sum(b.money) as '金额' from (select MAX(amount) as money from test group by name) b
我用游标实现了你的功能。
你首先建立一张空表,和你的操作表一样的结构,但是要求是空表,没有任何内容,比如是tempReg2
你把下面的代码拷贝到SQL查询分析器,稍作修改就行。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
DECLARE Cursor_Title CURSOR FOR SELECT distinct title FROM RegMember
OPEN Cursor_Title
declare @str varchar(50)
FETCH NEXT FROM Cursor_Title Into @str
WHILE @@FETCH_STATUS = 0
BEGIN
insert into tempReg2 select top 1 * from RegMember where title=@str
FETCH NEXT FROM Cursor_Title Into @str
END
CLOSE Cursor_Title
DEALLOCATE Cursor_Title
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
我用的表名是RegMember,重复的列名是title,所以这两个名称需要你替换一下。别的可以不变。
select distinct 字段1,字段2......字段N into talbe2 from table1
drop table1
rename talbe2 to table1
按这个思路就可以作了