只要后续 有查找重复数据的题目 都可以 借鉴
给你 一个表 里面 只有 id 字段,和一个 num字段
查找 num 字段中 相同数值 出现的次数大于等于2的 数值
1. 我们 首先可以想到 分表 把这一张表分成两张表 查询 两张表的num 值相同的 且 id 不同的,但是下面的sql 只能应用大于等于2 的查询,如果是查找大于3的 数值 ,就不会再适用了
select  distinct l1.num as a from  logs l1 join logs l2 on  l1.num=l2.num and l1.id !=l2.id ;2.使用 分组 分表 ,再查询的形式
先 将 每个数字出现的次数统计出来当成一个表,然后在该表里面查询出 数值大于2的数值
select  a.num from (select  logs.num,count(*) as b from logs group by num)as a where a.b>=1;3. 直接使用having +group by 分组
select  l1.num from  logs as l1 group by num having  count(*)>1;其中 sql语句的执行顺序where >group by >having>order by ,在需要用到 函数 来进行条件判断 可以使用having 因为 where 无法配合 函数使用