首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据包含特定字符串的另一列,选择其中一列具有重复值的行

根据包含特定字符串的另一列,选择其中一列具有重复值的行
EN

Stack Overflow用户
提问于 2020-04-10 22:06:45
回答 3查看 48关注 0票数 0

我有一个表,其中在客户编号列包含重复的值,我想选择有重复的客户编号条目的所有行,但只选择那些WO类型列只包含这些特定值('IMU',‘电气’)的行,所以在表映像中附加了这个问题:我应该只获得ID 1和2的行。

我不希望那些重复计数的地方重复行对也包含气体,但只希望那些重复的行,其中只包含IMU和电气值在WO类型列

非常感谢您的帮助。

EN

回答 3

Stack Overflow用户

发布于 2020-04-10 22:08:33

您可以使用group byhaving

代码语言:javascript
复制
select customerNumber
from t
where woType in ('EMU', 'Electric')
group by customerNumber
having count(*) = 2;

注意:这里假设没有重复的内容。要处理此问题,您可以使用:

代码语言:javascript
复制
having min(woType) <> max(woType)

或者:

代码语言:javascript
复制
having count(distinct woType) = 2   -- number of elements in IN list
票数 0
EN

Stack Overflow用户

发布于 2020-04-10 22:14:09

代码语言:javascript
复制
SELECT * 
FROM tbl t1
WHERE EXISTS 
(
    SELECT * FROM tbl t2 
    WHERE t2.customernumber = t1.customernumber 
        AND t2.wotype = 'IMU'
) AND EXISTS 
(
    SELECT * FROM tbl t2 
    WHERE t2.customernumber = t1.customernumber 
        AND t2.wotype = 'Electric'
) AND NOT EXISTS 
(
    SELECT * FROM tbl t2 
    WHERE t2.customernumber = t1.customernumber 
        AND t2.wotype NOT IN ('IMU', 'Electric')
)

这是一个fiddle

票数 0
EN

Stack Overflow用户

发布于 2020-04-10 22:30:55

试试这个:

select * From Table1 Main Inner ( select Customer_Number from Table1 group by Customer_Number Having COunt(Customer_Number)>1) SUB ON Main.Customer_Number=SUB.Customer_Number WHERE Main.Wo_Type IN ('IMU',‘select’)

此查询将返回表中重复的集合或行。

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

https://stackoverflow.com/questions/61142016

复制
相关文章

相似问题

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