1

このテーブルから重複を選択しようとしています:

snr zip
01 83
02 82
03 43
04 28

期待される結果は空のテーブルです。重複はありませんでした。

私はこのクエリを試しました:

SELECT snr, zip
FROM student
GRUOP BY snr
HAVING  (COUNT(zip) > 1)

しかし、構文に誤りがあり、集計関数などを照会しようとしていると表示されます。

4

2 に答える 2

6

zipから削除するか、次のような集計関数でラップする必要があるようです。SELECTCOUNT(zip)

SELECT   snr, COUNT(zip)
FROM     student
GROUP BY snr
HAVING   (COUNT(zip) > 1)

さらに提案がある場合は、@OMGPoniesの回答も確認してください。

于 2010-07-30T17:31:51.843 に答える
5

使用する:

  SELECT snr, zip
    FROM student
GROUP BY snr, zip
  HAVING COUNT(DISTINCT zip) > 1

標準SQLでは、集計関数(COUNT、MIN、MAXなど)でラップされていないSELECT句の列をGROUPBYで定義する必要があります。ただし、MySQLとSQLiteでは列を省略できます

さらに、COUNT(DISTINCTを使用しないと、誤検知のリスクがあります。

于 2010-07-30T17:32:48.223 に答える