sql - 在 Oracle SQL 中查找不唯一的行

标签 sql oracle having-clause

我有一个看起来很简单的问题,但我无法弄清楚。
我有以下几点:

   Name Zipcode

    ER 5354
    OL 1234
    AS 1234
    BH 3453
    BH 3453
    HZ 1234
我想找到那些 ID 没有明确定义一行的行。
所以我想在这里看到:
   OL 1234
   AS 1234
   HZ 1234
或者只是邮政编码就足够了。
很抱歉我忘记提到一个重要的部分。如果名称相同,则没有问题,仅当相同的邮政编码有不同的名称时。
所以这意味着:BH 3453 不会返回

最佳答案

我想这就是你想要的

select zipcode
from yourTable
group by zipcode
having count(*) > 1

它选择与多个记录相关联的邮政编码

回答您更新的问题:
select zipcode
from
(
  select name, zipcode
  from yourTable
  group by name, zipcode
)
group by zipcode
having count(*) > 1

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

关于sql - 在 Oracle SQL 中查找不唯一的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26101767/

相关文章:

sql - 在 PostgreSQL 中分配变量的语句中连接字符串

mysql - 列数和值之间的不匹配是怎么回事?

Oracle DBMS_SCHEDULER 在一周中每天的上午 8 点、中午 12 点、下午 4 点和晚上 8 点运行

sql - ORDER BY 与 HAVING 子句一起使用时出错

sql - SQL 中 HAVING 和 WHERE 子句的区别

mysql - 存储过程 WHERE 或 HAVING 不起作用

javascript - Node.js API 与 express 和 mysql - 仅在设置、等于和类似组合时应用搜索参数

sql - Oracle SQL - 查询时间限制

sql - 如何连接到oracle数据库:((

java - 尝试从 JBOSS 联系 Oracle LDAP 服务器时连接重置异常