有一个mysql统计表A表(id为自增字段),表结构和数据如下:id name score
1 zz 60
2 ll 70
3 ww 80
4 ff 90
5 zz 60
6 ww 80
问题来了:表里面有两条重复的记录(id号为1和5的重复,id号为3和6的重复)
现在如何通过一条sql语句 让重复的记录去掉,最终我需要的结果为:
id name score
1 zz 60
2 ll 70
3 ww 80
4 ff 90备注说明:数据重复的只是举例列举了两条 其实这个表里存在重复记录的量很多而且不定,
恳求各位大牛帮看下 如何通过sql语句将重复的记录去掉,跪谢!祝好人一生平安
1 zz 60
2 ll 70
3 ww 80
4 ff 90
5 zz 60
6 ww 80
问题来了:表里面有两条重复的记录(id号为1和5的重复,id号为3和6的重复)
现在如何通过一条sql语句 让重复的记录去掉,最终我需要的结果为:
id name score
1 zz 60
2 ll 70
3 ww 80
4 ff 90备注说明:数据重复的只是举例列举了两条 其实这个表里存在重复记录的量很多而且不定,
恳求各位大牛帮看下 如何通过sql语句将重复的记录去掉,跪谢!祝好人一生平安
解决方案 »
- navivat中的“模型”能做什么?(新手学习中)
- mysqldump在命令行里总是备份不到新数据
- 急!请教个join连接查询效率的问题!
- 如果在WIN XP中定时执行PostgreSql任务
- 请教一个表中产品销售记录的查询。
- sql问题
- Mysql-proxy 读写分离 多连接时,ERROR 1105 (07000): can't change DB to on slave 192.168.0.9:3306
- 如何列出mysql数据库所有的表
- MySQL新人疑问
- 数据库无法连接,请各位老师指导
- 问个小问题哦...删除记录后..自增的ID中间断了几个号码怎么解决?在线等~~~
- MYSQL语法问题,求解
select *
from tb A
where not exists (select 1 from tb Bwhere A.name=B.name and A.score=B.score and A.id>B.id)
select min(id) as id
from tb
group by name,score);不过效率很低
SELECT a.`name`,a.`score`,MIN(a.`id`) FROM ttp4 a GROUP BY a.`name`,a.`score`在NAME、SCORE、ID上建立索引
而且你的语句 我看了 tt a inner join tt b ,我觉得这里有错误 是不是大哥哪里写错了 或者理解错了
OR
给出真实数据测试
贴建表及插入记录的SQL,及要求结果出来看看
测试结果报错信息:#1146 - Table 'test.b' doesn't exist还望大牛们给条能直接解决的不用修改的sql语句 因为小弟比较菜 继续跪谢
delete a1 from a a1 inner join a b1 on a1.name=b1.name and a1.score=b1.score and a1.id>b1.id
能烦请小解释下a1
a a1
a b1
什么意思吗
select * from a a1 inner join a b1 on a1.name=b1.name and a1.score=b1.score and a1.id>b1.id
看看结果
与 a as a1 a as b1
结果是一样的是不是a as b 都可以写成a b啊?