我该如何对前3行后的值求和并将其分组在其他行下

Mah*_*nCV 6 sql sql-server

我有一个苹果采摘完成的参与者的下表。我有一张桌子,所有参与者都可以看到他们选出的苹果数量。

现在我想要一张只显示前三名的表,其余的将被分组在“其他”下,并且摘下的苹果总数应该与其他

我已经创建了表格,其中将包含所有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
Run Code Online (Sandbox Code Playgroud)

上表的必需输出

ID  Name    Apples picked
5   winner  23
4   2nd     15
2   3rd     12
    Others  13
Run Code Online (Sandbox Code Playgroud)

我不确定如何在第三之后添加所有内容并总结任何指导意见

Bri*_*ian 0

我会用两个#Temp 表来做到这一点。选择前3名进入第一;将 ID 不在第一行中的所有行的总和选择到第二行中;返回两个#Temp 表的并集。

您可以使用 CTE 而不是 #Temp 表 - 逻辑是相同的。