select * from (
select top 100 *, ROW_NUMBER() over(PARTITION BY uid order by star5 desc, star4 desc, star3 desc, star2 desc, star1 desc) as tbrow from tb_ushow
) as t where tbrow<=1 order by star5 desc, star4 desc, star3 desc, star2 desc, star1 desc
注:ROW_NUMBER() OVER() 是mssql2005后开始有的