如何利用sql查找表中的重复数据? | 您所在的位置:网站首页 › 怎么筛选表格中一个名字出现的数量 › 如何利用sql查找表中的重复数据? |
编写一个SQL查询,查找学生表中所有重复的学生名; 分析思路 1.看到“找重复”的关键字眼,首先要用分组函数(group by),再用聚合函数中的计数函数count()给姓名列计数。 2. 分组汇总后,生成了一个如下的表。从这个表里选出计数大于1的姓名,就是重复的姓名; 具体方法 方法一: 第一步:创建一个辅助表,将姓名列进行行分组汇总; select 姓名, count(姓名) as 计数 from 学生表 group by 姓名;第二步:选出辅助表中计数大于1的姓名; select 姓名 from 辅助表 where 计数 > 1;第三步:结合前两步,将“创建辅助表”的步骤放入子查询: select 姓名 from ( select 姓名, count(姓名) as 计数 from 学生表 group by 姓名 ) as 辅助表 where 计数 > 1;方法二: select 姓名 from 学生表 group by 姓名 where count(姓名) > 1;执行此语句会发现报错了,此时,查询相关资料发现,where子句无法与聚合函数一起使用,因为where子句的运行顺序排在第二,运行到where时,表还没有被分组; 如果要对分组查询的结果进行筛选,可以使用having子句: select 姓名 from 学生表 group by 姓名 having count(姓名) > 1;拓展 找出重复出现n次的数据。只需要改变having语句中的条件即可: select 列名 from 表名 group by 列名 having count(列名) > n; |
CopyRight 2018-2019 实验室设备网 版权所有 |