首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能从表中选择唯一的行(基于几个列),并且根据记录计算一个列被认为是重复的。

不能从表中选择唯一的行(基于几个列),并且根据记录计算一个列被认为是重复的。
EN

Stack Overflow用户
提问于 2022-10-10 20:20:55
回答 1查看 24关注 0票数 0

我有一个具有如下数据的遗留表,我试图选择具有一个列的唯一记录,该列将根据被认为是重复的记录的值来计算:

请注意,为了简单起见,我认为Is_hitIs_recvd的值是相同的,但可能有所不同。

代码语言:javascript
复制
  Case     Source  Is_Hit     Is_recvd
27887024    MHC     null        null
27887024    MHC     true        true    
27887024    DSC     true        true
27887024    CSD     null        null
27886949    DSC     null        null    
27886949    DSC     true        null
27884761    MHC     true        true
27884761    MHC     true        true

根据(Case + Source)的组合,记录据说是唯一的。

Is_hit应计算为:真和空的组合应导致真组合,真和真的组合应导致真和空的真组合。

应该计算Is_recvd (逻辑与is_hit相同):真和空的组合应该导致真的组合,真和真的组合应该导致真和空的真组合。

现在,对于上述情况,预期结果是:

代码语言:javascript
复制
  Case     Source  Is_Hit     Is_recvd
27887024    MHC     true        true
27887024    DSC     true        true
27887024    CSD     null        null    
27886949    DSC     true        null    
27884761    MHC     true        true

注意:所有列都被认为是varchar类型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-10 20:48:04

使用MAX函数的简单聚合将完成此工作,请尝试以下操作:

代码语言:javascript
复制
SELECT [case], Source, MAX(Is_Hit) Is_Hit, MAX(Is_recvd) Is_recvd
FROM table_name
GROUP BY [case], Source
ORDER BY [case] DESC, Source DESC

看一个演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74020312

复制
相关文章

相似问题

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