最近有个朋友我我一个查询重复数据的问题:
举例如下有:
表名: tab
字段: id(主键) areaid bud url
1 1200 sina www.ss.com
2 1101 sohu www.sq.com
3 1101 sina www.sd.com
4 1102 sina www.sq1.com
查出前面两个字符为11的信息,而且bud还不能重复存在,url可以任意取值
解决方法如下:
在这里思想就是因为id是唯一的所有可以取出id最小或者最大的一个bud并且可以保证bud唯一存在
然后再与tab连接得出对应的信息.
sql语句如下:
select * from tab c, ( select min(id) as id , b.area , count(*) as num from tab b where b.areaid like '11%' group by b.area) s
where s.id = c.id