は、私が学生のテーブルsqlを使用して一意のレコード番号を表示する方法は?
id | name | zip 1 | abc | 1234 2 | xyz | 4321 3 | cde | 1234
を持っていると私は、私だけが1と3のレコード番号を表示したくない4321で独自の郵便番号を表示したいです。では、どのようにしてユニークなレコードのみを表示できますか?
ありがとうございました。
は、私が学生のテーブルsqlを使用して一意のレコード番号を表示する方法は?
id | name | zip 1 | abc | 1234 2 | xyz | 4321 3 | cde | 1234
を持っていると私は、私だけが1と3のレコード番号を表示したくない4321で独自の郵便番号を表示したいです。では、どのようにしてユニークなレコードのみを表示できますか?
ありがとうございました。
次のクエリはあなたに重複して表示されていないすべての郵便番号与える:あなたはにしたい場合は
SELECT zip
FROM yourTable
GROUP BY zip
HAVING COUNT(*) = 1
をもその後、完全なレコードを取得しますあなたは、元のテーブルをフィルタリングするサブクエリとして上記を使用することができます。
SELECT *
FROM yourTable t1
INNER JOIN
(
SELECT zip
FROM yourTable
GROUP BY zip
HAVING COUNT(*) = 1
) t2
ON t1.zip = t2.zip
またはこの:
SELECT *
FROM yourTable
WHERE zip IN
(
SELECT zip
FROM yourTable
GROUP BY zip
HAVING COUNT(*) = 1
)
ありがとうございました。 –
DISTINCT
修飾子を使用すると、selectに強制的に複数の列に1つの値しか表示されなくなります。あなたのケースでは、次のようになります。
SELECT DISTINCT ZIP
FROM ...
これはまた、あなたが何をしようとしなかった
select
id, name, zip
from
(select
id, name, zip, count(zip) as countZip
from
student
group by zip) as subq
where
countZip = '1'
に動作しますか? – 1000111