选择具有相同值的列

时间:2012-10-12 12:58:13

标签: sql oracle

我正在尝试使用相同的邮政编码选择客户名称,但我似乎无法获得正确的结果。要返回的正确行是11.我似乎使用以下内容获得14:

SELECT a.customer_first_name, a.customer_last_name, a.customer_zip FROM customers a
UNION
SELECT b.customer_first_name, b.customer_last_name, b.customer_zip FROM customers b

从这里开始,我有点卡住了。我知道这两个陈述是一样的,但这是我到达的基础。

我打算使用以下内容:

WHERE a.customer_zip=b.customer_zip

但当然这不起作用,而且有点无关紧要。

客户表:

Customers table

非常感谢任何帮助。如果我错过任何事情和/或这个都不清楚,那么我道歉。感谢。

编辑:正确的结果应该是11行(我似乎无法实现)。

2 个答案:

答案 0 :(得分:2)

我愿意:

select customer_zip
from customers 
group by customer_zip
having count(customer_zip)>1

编辑:

这将给出重复ZIP的列表。基于它,您可以通过select * from customer_zip in(previous_query)

从客户那里找到那些带有拉链的客户

答案 1 :(得分:1)

SELECT customer_first_name, customer_last_name, customer_zip
FROM customers where customer_zip in 
  (SELECT customer_zip FROM customers
   GROUP BY customer_zip
   HAVING COUNT(*) > 1);