首页 > 试题广场 >

查找重复数据

[编程题]查找重复数据
  • 热度指数:95 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

表: 学生表

+-------------+---------+
| 字段名称     | 类型     |
+-------------+---------+
| 学号     | int     |
| 姓名     | varchar     |
+-------------+---------+

学号是该表的主键。
该表的每一行表示 一名学生的学号、姓名信息。

 

请分析按照学生姓名去重后的结果。

查询结果如下例所示。

 

示例 1:

输入: 表:学生表
+------+----+
| 学号   | 姓名 |
+------+----+
| 0001 | 猴子 |
| 0002 | 小马 |
| 0003 | 小王 |
| 0004 | 小王 |
| 0005 | 猴子 |
+------+----+ 输出: +----+
| 姓名 |
+----+
| 猴子 |
| 小王 |
+----+ 解释: 猴子、小王是学生表中重复的学生姓名。
示例1

输入

CREATE TABLE 学生表
(
    学号        INT,
    姓名        VARCHAR(512)
);
INSERT INTO 学生表 (学号, 姓名) VALUES (0001, '猴子');
INSERT INTO 学生表 (学号, 姓名) VALUES (0002, '小马');
INSERT INTO 学生表 (学号, 姓名) VALUES (0003, '小王');
INSERT INTO 学生表 (学号, 姓名) VALUES (0004, '小王');
INSERT INTO 学生表 (学号, 姓名) VALUES (0005, '猴子');

输出

姓名
猴子
小王
头像 最爱青草蛋糕
发表于 2025-10-15 08:41:33
select 姓名 from 学生表 group by 姓名 having count(*) > 1
头像 牛客987852806号
发表于 2024-06-28 11:20:19
很常见的找出列里多次出现的数据,知识点group by 分组 having 分组后条件筛选,通常与聚合函数进行连接。 此题思路就是查看有重复姓名的人,就按照姓名分组,统计姓名有2个或2个以上就算重复了,给它晒出来即可。 select 姓名 from 学生表 group by 姓名 having c 展开全文
头像 向日葵的骄傲,你知道吗
发表于 2025-09-29 22:32:14
select 姓名 from 学生表 group by 姓名 having count(*)>=2;