SQLSERVER中FIRST_VALUE和LAST_VALUE

2014-11-24 10:13:59 · 作者: · 浏览: 0

SQL SERVER中FIRST_VALUE和LAST_VALUE

FIRST_VALUE和LAST_VALUE

看下组SQL语句:

WITH test
as
(
    select '乐可乐可的部落格' as name,10 as score
    UNION ALL
    select '乐可乐可的部落格',15
    UNION ALL
    select '乐可乐可的部落格',20
    UNION ALL
    select '微软认证',30
    UNION ALL
    select '微软认证',40
    UNION ALL
    select '微软认证',40
)
select name,score
,FIRST_VALUE(score)over(order by name) as fst
,LAST_VALUE(score)over(order by name) as Lst
from test

结果:

name score fst Lst
乐可乐可的部落格 15 15 10
乐可乐可的部落格 20 15 10
乐可乐可的部落格 10 15 10
微软认证 40 15 30
微软认证 40 15 30
微软认证 30 15 30

FIRST_VALUE(score)over(order by name) as fst,取按name升序排列的第一行score,见红色字体。

LAST_VALUE(score)over(order by name) as Lst,取按name升序排列的相同name最后一行score,见蓝色和紫色字体。