找出重复出现n次的数据

根据没有重复,学习找到重复的数据(找出重复出现n次的数据)

【题目】

编写一个SQL查询,查找“用户行为表"中所有重复的访客。

【解题思路一】:利用子查询

1.看到“找重复”的关键字眼,首先要用分组函数(group by),再用聚合函数中的计数函数count()给访客id列计数。

select 访客id, count(访客id) as 计数

from 用户行为表

group by 访客id;

2. 分组汇总后,生成了一个新表,从这个表里选出计数大于1的姓名,就是重复的访客。

select 访客id

from 辅助表

where 计数 > 1;

3. 汇总。

select 访客id

from

        select 访客id, count(访客id) as 计数

        from 用户行为表

        group by 访客id

) as 辅助表

where 计数 > 1

⚠️ 聚合函数(count),where字句无法与聚合函数一起使用。因为where子句的运行顺序排在第二,运行到where时,表还没有被分组。

【解题思路二】

select 访客id

from 用户行为表

group by 访客id

having count( 访客id) > 1;

补充:【题目】如何删除重复数据

delete from 用户行为表

where 访客id in (

        select 访客id

        from 用户行为表

        group by 访客id

        having count( 访客id) > 1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值