select *
from (select row_number() over(partition by id order by exscore desc) lev,
*
from table1
)
where lev = 1
order by id desc我这样可以把每组的第一条记录取出来,可是我还想把每组有几条记录取出来,该怎么取呢?
from (select row_number() over(partition by id order by exscore desc) lev,
*
from table1
)
where lev = 1
order by id desc我这样可以把每组的第一条记录取出来,可是我还想把每组有几条记录取出来,该怎么取呢?
from (select row_number() over(partition by id order by exscore desc) lev,
*
from table1
)
where lev < 5
order by id desc
from (select row_number() over(partition by id order by exscore desc) lev,
count(*) over(partition by id) cnt
*
from table1
)
where lev = 1
order by id desc