当前位置: 首页 > 面试题库 >

什么SQL返回第一列中的重复项,而第二列中的值不同?

孙经艺
2023-03-14
问题内容

问题非常 类似于此查找重复项,但我只想查找那些重复代码与“ ROME”不同且至少一个名称为“ ROME”的重复ID。

我想要理想的结果,因为:

  1. ID重复。
    2.至少一个来源是“ ROME” 。
    3.该ID的其余行不是“ ROME”

    Table

    ID ORIGIN

    1 ROME
    1 ROME
    2 ROME
    2 LODI
    3 ASTI
    4 PISA
    4 BARI

    Desired Results
    ID ORIGIN

    2 ROME
    2 LODI


问题答案:

SELECT
id,
origin
FROM
My_Table T1
WHERE
EXISTS (SELECT * FROM My_Table T2 WHERE T2.id = T1.id AND T2.origin = ‘ROME’) AND
EXISTS (SELECT * FROM My_Table T3 WHERE T3.id = T1.id AND T3.origin <> ‘ROME’)



 类似资料:
  • 问题内容: 我有表,其中有一列可能在突发中具有相同的值。像这样: 现在,我要修剪重复值的行,并仅选择第一个出现的行。 对于上表,结果应为: 如何在SQL中执行此操作? 请注意,仅应删除突发行,并且可以在非突发行中重复值! &在样本结果中重复。 编辑: 我用这个实现了它: 但这仅在ID为顺序的时才有效。id(已删除的ID)之间有间隔,查询中断。我怎样才能解决这个问题? 问题答案: 您可以使用半联接来

  • 问题内容: 我有一个功能。,它接受一个整数并返回True或False。 我有10个整数的列表。我想返回列表中的第一个项目(与原始列表的顺序相同),该项目已返回True。 尽可能地Python。 问题答案: next(x for x in lst if matchCondition(x)) 应该可以,但是如果列表中的所有元素都不匹配,它将提高。您可以通过提供第二个参数来抑制这种情况: 如果没有匹配项

  • 问题内容: 我有一个类似下面的查询,并列出了它的输出: o / p: 我想重新编写查询,以便获得如下输出: 有人可以帮忙吗? 问题答案: 在11g中使用Listagg()或在10g中使用WM_Concat():

  • 在Java 8中,我越来越多地用替换返回值。 所以我曾经有: 我现在使用: 我对此的论点是: 它强制执行基础列表的不变性。 它隐藏了存在基础列表的事实。之后可以将其更改为集合或其他结构,而无需更改方法签名 它很好地封装了该方法的用户希望对项进行处理,而不是对列表进行处理 如果需要,它可以在以后进行简单的并行化 事实上,现在,在我的代码中,返回<code>列表 显然,其中一些可以通过不可变集合来实现

  • 我刚开始学习SQL。我正在使用Oracle数据库。 表emp中包含empno、ename、job、mgr、hiredate、sal、comm、deptno列。 我想从ename列中获取每个deptno的第一条记录,ename必须按asc排序。 以下SQL工作: 我想优化它,所以我不需要重写它,如果我添加一些记录到deptno列。 我用distinct-like进行了尝试