排除掉重复结果的SQL语句求助
这样一张表
ID PID State
1 1 aaaaa
2 1 bbbbb
3 2 ccccc
4 2 ddddd
5 1 b1b1b1
6 2 a1a1a1
7 3 d2dd2d
8 3 343434
要求:查询结果为
5 1 b1b1b1
6 2 a1a1a1
8 3 343434
也就是说PID相同的记录只取ID值最大的那一条。
谢谢了。
[解决办法]
select *from 这样一张表 awhere not exists (select 1 from 这样一张表 where PID=a.PID and State>a.State)
[解决办法]
写错了。应该是ID最大的,修改如下
select *from 这样一张表 awhere not exists (select 1 from 这样一张表 where PID=a.PID and ID>a.ID)
[解决办法]
GOOD JOB!~ADMIRE~
[解决办法]
select a.* from tt a inner join (select PID,max(id) as max_id from tt group by PID) b
on a.PID=b.PID and a.ID=b.max_id
[解决办法]
前几天刚遇到了这个问题,很不错,也很精典,解决方法
select e.ID,e.Pid,e.State from 这一张表 as e,(select ParentId,max(id) as pp from 这一张表 group by PID) b where e.id=b.pp