在Oracle SQL中找不到唯一的行

Sün*_*iÚr 4 sql oracle having-clause

我有一个看似简单的问题,但我无法弄明白.

我有以下几点:

   Name Zipcode

    ER 5354
    OL 1234
    AS 1234
    BH 3453
    BH 3453
    HZ 1234
Run Code Online (Sandbox Code Playgroud)

我想找到那些ID没有明确定义一行的行.

所以我想在这里看到:

   OL 1234
   AS 1234
   HZ 1234
Run Code Online (Sandbox Code Playgroud)

或者只是简单的邮政编码.

对不起,我忘了提到一个重要的部分.如果名称相同则不是问题,只有同一个邮政编码有不同的名称. 所以这意味着:BH 3453不归

vc *_* 74 8

我想这就是你想要的

select zipcode
from yourTable
group by zipcode
having count(*) > 1
Run Code Online (Sandbox Code Playgroud)

它选择与多个记录关联的zipcodes

回答你更新的问题:

select zipcode
from
(
  select name, zipcode
  from yourTable
  group by name, zipcode
)
group by zipcode
having count(*) > 1
Run Code Online (Sandbox Code Playgroud)

应该这样做.它在性能方面可能不是最佳的,在这种情况下,您可以使用@ a1ex07建议的窗口函数