用分析函数row_number来给分组内的记录编号,然后取编号值为1的记录即可。
select s.*from ( select v.*, row_number() over (partition by b order by c desc) as order_num from #b v) swhere s.order_num = 1
SELECT a FROM #b W WHERE C=(SELECT MAX(C) FROM #b WHERE b=W.b)