gpt4 book ai didi

sql - 如何对前 3 行之后的值求和并将它们分组到其他行下

转载 作者:行者123 更新时间:2023-12-02 20:05:06 25 4
gpt4 key购买 nike

我有以下苹果采摘完成的参与者表。我有一张 table ,可以看到所有参与者以及他们采摘的苹果数量。

现在我想要一个表格,其中仅显示前 3 个,其余的将分组在“其他”下,并且采摘的苹果总数应与其他苹果相对应显示

我已经创建了一个表,其中包含所有 id 和收集的苹果总数

declare  @t table
(
id int,
Apples_picked int
)

insert into @t
select 1,10
union
select 2,12
union
select 3,3
union
select 4,15
union
select 5,23

上表所需的输出

ID  Name    Apples picked
5 winner 23
4 2nd 15
2 3rd 12
Others 13

我不知道如何添加第三个之后的所有内容,并总结任何指导,非常感谢

最佳答案

;WITH cte AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY Apples_picked DESC) rn
FROM @t
)
SELECT ID,
CASE rn WHEN 1 THEN 'Winner' WHEN 2 THEN '2nd' WHEN 3 THEN '3rd' END AS Name,
cte.Apples_picked
FROM cte
WHERE rn <= 3
UNION ALL
SELECT NULL, 'Others', SUM(apples_picked)
FROM cte
WHERE rn > 3

返回:

ID      Name    Apples_picked
5 Winner 23
4 2nd 15
2 3rd 12
NULL Others 13

关于sql - 如何对前 3 行之后的值求和并将它们分组到其他行下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56738245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com