我想添加一列,以显示“名称”在其他行中出现了多少次。基本上该名称出现的总次数,但在每一行中列出。
select number, name from table;
添加前的样本数据:
number name
1234 storeA
1235 storeA
1236 storeA
1237 storeB
1238 storeC
1239 storeC
添加后所需的输出
number name Total
1234 storeA 3
1235 storeA 3
1236 storeA 3
1237 storeB 1
1238 storeC 2
1239 storeC 2
答案 0 :(得分:5)
您可以使用窗口功能:
select t.*,
count(*) over (partition by name) as total
from table t;
但是,如果窗口函数不起作用,ANSI
SQL标准会提供关联子查询方法:
select t.*,
(select count(*)
from table t1
where t1.name = t.name
) as total
from table t;