根据不同列中的值删除重复的(几乎)行

问题描述 投票:0回答:1

在 SQL Server 中考虑这个结果:

ID    Check
-----------
9052    N
9052    Y
2049    N
2049    Y
6940    N
6940    Y
7941    N
8118    N
8187    N

如果同一 ID 至少有一个 Y,如何删除重复的 ID 行并在“检查”列中仅保留 Y。如果存在仅带有N的ID,则保留它们。我还有很多其他列未在示例中显示。所以预期的结果是:

ID    Check
------------
9052    Y
2049    Y
6940    Y
7941    N
8118    N
8187    N
sql sql-server concatenation data-cleaning
1个回答
2
投票

CHECK
是一个保留字,所以我会避免使用该列名称。无论如何,由于 Y > N 那么你可以使用
MAX

select 
 id, 
 max(check_col) as check_col
from table1
group by id
order by id
id check_col
2049
6940
7941 N
8118 N
8187 N
9052

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.