このテーブルから重複を選択しようとしています:
snr zip
01 83
02 82
03 43
04 28
期待される結果は空のテーブルです。重複はありませんでした。
私はこのクエリを試しました:
SELECT snr, zip
FROM student
GRUOP BY snr
HAVING (COUNT(zip) > 1)
しかし、構文に誤りがあり、集計関数などを照会しようとしていると表示されます。
このテーブルから重複を選択しようとしています:
snr zip
01 83
02 82
03 43
04 28
期待される結果は空のテーブルです。重複はありませんでした。
私はこのクエリを試しました:
SELECT snr, zip
FROM student
GRUOP BY snr
HAVING (COUNT(zip) > 1)
しかし、構文に誤りがあり、集計関数などを照会しようとしていると表示されます。
列zip
から削除するか、次のような集計関数でラップする必要があるようです。SELECT
COUNT(zip)
SELECT snr, COUNT(zip)
FROM student
GROUP BY snr
HAVING (COUNT(zip) > 1)
さらに提案がある場合は、@OMGPoniesの回答も確認してください。
使用する:
SELECT snr, zip
FROM student
GROUP BY snr, zip
HAVING COUNT(DISTINCT zip) > 1
標準SQLでは、集計関数(COUNT、MIN、MAXなど)でラップされていないSELECT句の列をGROUPBYで定義する必要があります。ただし、MySQLとSQLiteでは列を省略できます。
さらに、COUNT(DISTINCTを使用しないと、誤検知のリスクがあります。