查询表数据时在最后加一个字段展示该数据在表中的重复的次数
查询表数据时在最后加一个字段显示该数据在表中的重复的次数
如题 有表数据A
id name age
1 张三 20
2 李四 21
3 张三 20
4 王五 25
5 王五 25
6 王五 25
如上表 张三出现2次 李四出现过1次 而 王五出现过3次 我想查询表返回如下表结构
id name age count
1 张三 20 2
2 李四 21 1
3 张三 20 2
4 王五 25 3
5 王五 25 3
6 王五 25 3
就是追加一个字段 显示 该信息重复的次数 这样的sql 语句如何写呢?
------解决思路----------------------
------解决思路----------------------
如题 有表数据A
id name age
1 张三 20
2 李四 21
3 张三 20
4 王五 25
5 王五 25
6 王五 25
如上表 张三出现2次 李四出现过1次 而 王五出现过3次 我想查询表返回如下表结构
id name age count
1 张三 20 2
2 李四 21 1
3 张三 20 2
4 王五 25 3
5 王五 25 3
6 王五 25 3
就是追加一个字段 显示 该信息重复的次数 这样的sql 语句如何写呢?
------解决思路----------------------
with c1(id,name,age)
as(
select 1,'张三',20 union all
select 2,'李四',21 union all
select 3,'张三',20 union all
select 4,'王五',25 union all
select 5,'王五',25 union all
select 6,'王五',25
)
,c2(name2,count)
as(select name,count(name) as [count] from c1 group by name)
select c1.*,count from c1,c2 where c1.name=c2.name2 order by id
------解决思路----------------------
select *,count=COUNT(*) over(partition by name)
from tb
order by id