这个语句怎么写(sql server)

来源:百度知道 编辑:UC知道 时间:2024/07/07 00:01:22
例如有个表为:
(此时表里的出现次数指姓名在这个表里出现了多少次,此时表里的为0,是不准确的数字,现在就是要让他更新为准确的数字)

姓名 出现次数
张三 0
李二 0
李二 0
吴中 0
陈飞 0
大中 0
天不 0
大中 0
吴中 0

我想把表更新为:

姓名 出现次数
张三 1
李二 2
李二 2
吴中 2
陈飞 1
大中 2
天不 1
大中 2
吴中 2

我现在要把这个表中的姓名分组 (设此表名为 a)
select 姓名,count(*) from a group 姓名

现在就是想把这个count(*) 的值赋给 表中的 出现次数

我写了这个语名不管用,提示错误,在此请教高手

update a set 出现次数=(select count(*) from a group by 姓名)

提示错了,不知怎么办是好

子查询用法错.

update a
set 出现次数=b.num
from a,
(select 姓名,count(*) as num from a group by 姓名
) b
where a.姓名=b.姓名

update 到什么地方,你要用一个where 跟在 update语句后面指定update 到什么地方的条件
你试试下面的语句行不行。
update a
set 出现次数=b.出现次数
a a,
(select count(*) as 出现次数,姓名 from a group by 姓名)b
where a.姓名=b.姓名