---------------------------
表T
-----------------------------
ID - FID - TIMES - TOP
1 - 1 - 1100 - 0
2 - 1 - 1120 - 1
3 - 2 - 1130 - 0
4 - 2 - 1140 - 0
5 - 3 - 1150 - 0
------------------------------
有一个这样的表,先把这个表按TOP字段倒序排列,按ID正序排列..
ID - FID - TIMES - TOP
2 - 1 - 1120 - 1
1 - 1 - 1100 - 0
3 - 2 - 1130 - 0
4 - 2 - 1140 - 0
5 - 3 - 1150 - 0
现在要按FID 和TIMES进行条件捡索.
当FID存在相同值时,只取出其中最上一条.也就是现在要取出的记录是:
FID=1的其中一条,FID=2的其中一条.FID=3的其中一条
ID - FID - TIMES - TOP
2 - 1 - 1120 - 1
3 - 2 - 1130 - 0
表T
-----------------------------
ID - FID - TIMES - TOP
1 - 1 - 1100 - 0
2 - 1 - 1120 - 1
3 - 2 - 1130 - 0
4 - 2 - 1140 - 0
5 - 3 - 1150 - 0
------------------------------
有一个这样的表,先把这个表按TOP字段倒序排列,按ID正序排列..
ID - FID - TIMES - TOP
2 - 1 - 1120 - 1
1 - 1 - 1100 - 0
3 - 2 - 1130 - 0
4 - 2 - 1140 - 0
5 - 3 - 1150 - 0
现在要按FID 和TIMES进行条件捡索.
当FID存在相同值时,只取出其中最上一条.也就是现在要取出的记录是:
FID=1的其中一条,FID=2的其中一条.FID=3的其中一条
ID - FID - TIMES - TOP
2 - 1 - 1120 - 1
3 - 2 - 1130 - 0
5 - 3 - 1150 - 0
SELECT * FROM ( SELECT A.*,ROW_NUMBER() OVER (PARTITION BY FID ORDER BY ID) RN FROM TEST A ) WHERE RN=1 |