首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多列组合的表中获取重复记录,并为重复显示“Y”,对单个记录显示“N”

从多列组合的表中获取重复记录,并为重复显示“Y”,对单个记录显示“N”
EN

Stack Overflow用户
提问于 2020-10-08 14:58:50
回答 1查看 421关注 0票数 1

我需要从多列组合的表中找到重复的记录,并在gridView中的其他列中显示“Y”作为重复记录。

为了说明:

代码语言:javascript
复制
Table A:
ID, Col1 ,    Col2,    Col3 , Col4,   Col5,    Col6,   Col7,   Col8,  Col9 
1,  AVal1,    AVal2,   AVal3, AVal4,   AVal5,  AVal6,  AVal7,  AVal8, AVal9
2,  AVal10,   AVal11,  AVal3, AVal4,   AVal5,  AVal6,  AVal12,  AVal13, AVal14
3,  AVal15,   AVal15,  AVal3, AVal4,   AVal5,  AVal6,  AVal16,  AVal17, AVal18

Table B
ID, Col1, Col2, Col3

我需要识别表A中关于(Col3,Col4,Col5,Col6)组合的重复记录

当我从表A中选择记录时,我应该得到RowID 1的重复'N‘和RowID 2和3的'Y’。

代码语言:javascript
复制
Select A.Col1,A.Col3, A.Col4, A.Col6, 'Y / N' AS [Duplicate], B.Col2
FROM A 
LEFT JOIN B 
    ON A.ID = B.ID

我尝试使用GroupBy和分区,但我还有其他列也要被选中,但在GroupBy子句中不能使用whihc。

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-08 15:05:44

我想你想要row_number()

代码语言:javascript
复制
select t.*,
       (case when row_number() over (partition by col3, col4, col5, col6 order by col1) = 1
             then 'N' else 'Y'
        end) as flag
from t;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64265297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档