在单个列和 return 所有其他列数据中查找重复项

Finding Duplicates in a single column and return all other column data

我有一个 table 数据,我想找到任何具有重复位置 #(我的数据列之一)的行。
我已经编写了一些有效的代码,但它不允许我看到额外的 Column/header 信息。

数据Table:

MainItem BomLevel Position ComponentItem CompDesc TotalQty
316006 1 10 500006 Conv Kit 1
316006 1 20 562060 Battery 4
316006 1 30 VS147 Charger 1
316006 1 40 9970 Red Pad 1
316006 1 60 563844 Blue Pad 1
316006 1 60 512346 Machine 1

我愿意return:

MainItem BomLevel Position ComponentItem CompDesc TotalQty
316006 1 60 563844 Blue Pad 1
316006 1 60 512346 Machine 1

这是我目前知道如何编写的代码:

select    
    a.MainItem
    , a.BomLevel
    , a.Position    
from reports.v_bom a    
where a.MainItem = '316006'    
group by a.MainItem, a.BomLevel, a.Position    
having Count (*) > 1 

但这只会 return:

MainItem BomLevel Position
316006 1 60

由于您只标记了 SQL,因此以下是 ANSI SQL 并将在大多数支持分析 window 函数的现代 RDBMS 中工作:

with c as (
    select *, Count(*) over(partition by mainitem, bomlevel, position) cnt
    from t
)
select * 
from c
where cnt > 1;