SQL开发技巧二

1.重复数据的处理

1.利用Group By 和 having从句处理

这里写图片描述

SELECT `name`,COUNT(*) FROM `user1` GROUP BY `name` HAVING COUNT(*) > 1;

这里写图片描述

2.删除重复数据,对于相同数据保留ID最大的

DELETE a FROM user1 a JOIN(SELECT `name`,COUNT(*),MAX(id) AS id FROM user1 GROUP BY `name` HAVING COUNT(*)>1) b ON a.`name` = b.`name` WHERE a.id < b.id;

2.常见子查询的使用场景

1.使用子查询可以避免由于子查询中的数据产生的重复

使用连接查询
这里写图片描述
使用连接查询有重复,所以一定要去重
这里写图片描述
使用子查询可以避免由于子查询中的数据产生的重复

这里写图片描述

2.查询中实现多列过滤

查询出每一个取经人打怪最多的日期,并列出取经人的姓名,打怪最
多的日期和打怪的数量
1.使用连接的方式
这里写图片描述
2.使用mysql特有的多列过滤
这里写图片描述


3.解决同一属性的多值过滤

添加一个技能表
这里写图片描述
查询出同时具有变化和念经两项技能的取经人

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值