27,579
社区成员
发帖
与我相关
我的任务
分享
SELECT * ,
COUNT(1) OVER ( PARTITION BY MaterialSpec ) AS [No]
FROM comMaterialGroup
ORDER BY MaterialId;
--问题描述:
--在物料表中查出规格重复的数据,并显示重复的条数
--创建物料表结构 MaterialId物料代码;MaterialNmae名称;MaterialSpec规格
CREATE TABLE comMaterialGroup
(MaterialId varchar(50),
MaterialName varchar(100),
MaterialSpec varchar(50))
--插入数据
insert into comMaterialGroup
select 'A','国产-焊接钢管-DN50*2.75','DN50*2.75' union all
select 'B','国产-焊接钢管-DN50*2.76','DN50*2.75' union all
select 'C','国产-焊接钢管-DN50*2.77','DN50*2.75' union all
select 'D','国产-焊接钢管-DN50*2.78','DN50' union all
select 'E','国产-焊接钢管-DN50*2.79','DN50'
--查出规格重复的数据,在后面显示重复的条数
select MaterialId,MaterialName,MaterialSpec from comMaterialGroup
where MaterialSpec in (select MaterialSpec from comMaterialGroup GROUP BY MaterialSpec HAVING COUNT(MaterialSpec)>1)
--想要的结果
MaterialId MaterialName MaterialSpec No
A 国产-焊接钢管-DN50*2.75 DN50*2.75 3
B 国产-焊接钢管-DN50*2.76 DN50*2.75 3
C 国产-焊接钢管-DN50*2.77 DN50*2.75 3
D 国产-焊接钢管-DN50*2.78 DN50 2
E 国产-焊接钢管-DN50*2.79 DN50 2