删除SQL中具有重复列值的行

删除SQL中具有重复列值的行,sql,sql-server,tsql,Sql,Sql Server,Tsql,在过去的几个小时里,我到处寻找答案,子查询,CTE,与这个问题的派生表左连接,但是没有一个解决方案真正符合我的标准 我有一个包含如下数据的表: COL1 COL2 COL3 1 A 0 2 A 1 3 A 1 4 B 0 5 B 0 6 B 0 7 B 0 8 B 1 其中column1是主键,是一个int。c

在过去的几个小时里,我到处寻找答案,子查询,CTE,与这个问题的派生表左连接,但是没有一个解决方案真正符合我的标准

我有一个包含如下数据的表:

   COL1  COL2 COL3 
    1     A    0
    2     A    1
    3     A    1
    4     B    0
    5     B    0
    6     B    0
    7     B    0
    8     B    1
其中column1是主键,是一个int。column2是nvarcharmax,column3是一个int。通过使用此查询,我确定:

select name, COUNT(name) as 'count'
FROM [dbo].[AppConfig]
group by Name
having COUNT(name) > 3
只有当A、B和C列的出现次数超过3次时,我才能返回它们的总计数。我现在试图删除在第3列的初始值之后出现的所有行。我提供的示例表现在如下所示:

   COL1  COL2 COL3 
    1     A    0
    2     A    1
    4     B    0
    8     B    1                
有人能帮我吗?

这应该可以:

;WITH numbered_rows as (
SELECT
    Col1,
    Col2,
    Col3,
    ROW_NUMBER() OVER(PARTITION BY Col2, Col3 ORDER BY Col3) as row
FROM AppConfig)
SELECT 
  Col1,
  Col2,
  Col3
FROM numbered_rows
WHERE row = 1

如果您只想在第一行使用ColB-ColC组合,则以下操作即可:

select min(id) as id, colB, colC
from tbl
group by colB, colC
order by id
SELECT DISTINCT MIN(COL1) AS COL1,COL2,COL3 
FROM TABLE
GROUP BY  COL2,COL3
ORDER BY COL1