📅  最后修改于: 2023-12-03 15:28:22.221000             🧑  作者: Mango
在SQL中,有时我们需要查询出重复的数据,这样的情况可能有多种,例如:
本文将介绍如何使用SQL查询出重复项。
使用GROUP BY
和HAVING
语句可以轻松查询出重复项。
例如,在一个名为persons
的表中,我们要查询出名字重复的人:
SELECT name
FROM persons
GROUP BY name
HAVING COUNT(*) > 1;
解析:
GROUP BY name
将表中的数据按照name
字段分组HAVING COUNT(*) > 1
过滤出由两个或以上记录组成的组,即名字重复的人如果要查询出所有列中存在重复项的记录,可以使用以下语句:
SELECT *
FROM persons
WHERE id NOT IN (
SELECT MIN(id)
FROM persons
GROUP BY name
HAVING COUNT(*) = 1
);
解析:
SELECT MIN(id) FROM persons GROUP BY name HAVING COUNT(*) = 1
查询出只有一条记录的组WHERE id NOT IN
过滤掉只有一条记录的组使用GROUP BY
和HAVING
语句可以轻松查询出重复项,同时也可以使用子查询来进行更加复杂的查询。