sql如何统计重复数据并在后一列统计出重复次数?

执行命令后得到:

请高手指点SQL语句怎么写?

第1个回答  2013-08-06
你这个问题应该是这样写的:

insert into table(CT) select COUNT(BRRR) FROM table t1,table t2 where t1.BRRR = t2.BRRR;

把这里面的table改成你自己的表名;试试看好用不。

望采纳!!追问

table1 和 table2 是同一张表吗?,我想在同一张表内操作可以吗

追答

t1 和 t2 是同一张表,我做了一个内连接。

追问

第2个回答  2013-08-06
SELECT a.BRRR,b.CT FROM test a  LEFT JOIN (SELECT BRRR,COUNT(1) AS CT
FROM test
GROUP BY BRRR) b ON a.BRRR=b.BRRR


试试,,,,

追问

在吗,你的语句能用,但是只能查询呀,我想把统计数据插入到CT列,麻烦大神了

追答

update test a,(SELECT BRRR,COUNT(1) AS CT
FROM test
GROUP BY BRRR) b
set a.ct=b.ct
where a.BRRR=b.BRRR,
可以试试这个,access的多表关联更新跟其他数据库不太一样,,,我只是印象是这样的,你可以看看,,,因为涉及access比较少,,,

本回答被提问者采纳
第3个回答  2013-08-06
sqlserver 吗:
  
update tabxxx a set a.ct = b.ct
from (
select brrr,count(1) ct
from tabxxx
group by brrr
) b
where a.brrr = a.brrr

追问

access数据

追答

你试试吧,access和sqlserver还是比较接近的。

追问

里面的 a 和 b 照搬吗?

追答

是的, tabxxx 需要换成你的表名

追问

提示 语法错误,操作符丢失

追答

给你贴一个网站:http://access911.net/fixhtm/77FAB61E14DC.htm?tt=

问题:

想达到此目的,如何修改下面的update语句
update usertabb094 t1 ,(select field_3, sum(field_9) as field_91,sum(field_10 ) as field_101 from usertabb095 group by field_3 ) t2 set t1.field_8=(t1.field_8*t1.field_7+t2.field_101)/(t1.field_7+t2.field_91) where t1.field_1=t2.field_3

上面的语句运行显示:
操作必需使用一个可更新的查询

回答:

必须拆成2个查询才能运行
1、select field_3, sum(field_9) as field_91,sum(field_10 ) as field_101 into [095] from usertabb095 group by field_3

注意:使用套嵌查询就会出现你说的问题,但是使用临时表没问题
2、
UPDATE usertabb094 AS t1 INNER JOIN 095 ON t1.field_1=[095].field_3 SET t1.field_8 = (t1.field_8*t1.field_7+[095].field_101)/(t1.field_7+[095].field_91);

追问

好像access数据查询和SQL有差异导致,大神们写的在SQL都能用,在ACCESS就不行,我再想想办法!

追答

确实不一样,你看一下我贴的网址。

确实不一样,你看一下我贴的网址。

本回答被网友采纳
第4个回答  2013-08-06
select brrr,COUNT(BRRR) FROM XXX GROUP BY BRRR

第5个回答  2013-08-06
用group by 加COUNT(1)就行
相似回答