select * from (select *,rn=row_number()over(partition by DID order by PFever desc
from 专家表) a inner join MemberBase b on a.MBID=b.MBID where a.rn<=3
from 专家表) a inner join MemberBase b on a.MBID=b.MBID where a.rn<=3
rn=row_number()
这是什么意思
没这个函数
select * from
(
select * ,ROW_NUMBER ()over(partition by did order by meid) 名次
from expert) 名次<=3
select * from (select *,row_number() over(partition by DID order by PFever) rank from (select M.*,E.DID部门,E.PFever热度 from MemberBase M join Expert E on M.MBID=E.MBID) T) T2
where rank<=3
用于排序的
2000没有
有等效的SQL吗
select * from
(select mbid,did,pfever,次数= (select COUNT(*) from expert where did=a.did
and pfever<a.pfever) from expert as a
) A where 次数<=3
2005
select * from
(
select * ,ROW_NUMBER ()over(partition by did order by pfever) 名次
from expert) 名次<=3
from MemberBase a join Expert b on a.MBID = b.MBID
where (select count(1) from Expert c where DID = b.DID and pfever<a.pfever ) < 3