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

看起来您需要zipSELECT列中删除,或者将其包装在聚合函数中,例如COUNT(zip)

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

另请查看@OMG Ponies 的回答以获取更多建议。

于 2010-07-30T17:31:51.843 回答
5

利用:

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

标准 SQL 要求 SELECT 子句中未包装在聚合函数(COUNT、MIN、MAX 等)中的列需要在 GROUP BY 中定义。但是,MySQL 和 SQLite 允许省略列

此外,使用 COUNT(DISTINCT 否则您将面临误报的风险。

于 2010-07-30T17:32:48.223 回答