大神,求助!!!!SQL的问题。Sqlserver,如何只取记录前10的数据,并且把其他数据的值求和成一条记录?
2个回答
展开全部
你可以先根据值得大小进行降序排序,在添加row_number来多出序号一列,然后取前10 的序号值,最后用UNION将两条语句结果合并。请参考下列code:
declare @t table
(name varchar(1),value int)
insert into @t values
('A',15),
('B',10),
('C',20),
('D',5),
('E',7);
;WITH Cte AS
(
SELECT *,ROW_NUMBER() OVER(ORDER BY VALUE desc) RN FROM @T
)
SELECT name,value FROM CTE WHERE RN<=3
UNION ALL
SELECT 'Others',sum(value) from cte where rn>3
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询