1

同じ郵便番号の顧客名を選択しようとしていますが、正しい結果が得られないようです。返される正しい行は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

しかしもちろん、これは機能せず、無関係です。

顧客テーブル:

顧客テーブル

どんな助けでも大歓迎です。私が何かを見逃した場合、および/またはこれが不明確になった場合は、お詫び申し上げます。ありがとう。

編集:正しい結果は11行になるはずです(これは達成できないようです)。

4

2 に答える 2

2

私はします:

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

編集:

これにより、重複するZIPのリストが表示されます。これに基づいて、customer_zipが(previous_query)にある顧客からselect *を使用して、これらのzipを持つ顧客を簡単に見つけることができます。

于 2012-10-12T13:01:32.513 に答える
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);
于 2012-10-12T13:07:20.843 に答える