Sql server 当在SQL中对一行执行SUM()时,如何添加一个标志,表明它是否实际求和?

Sql server 当在SQL中对一行执行SUM()时,如何添加一个标志,表明它是否实际求和?,sql-server,Sql Server,在使用SUM()时,我试图标记一行是否实际与另一行相加。还有计算min()、max()的行,我正在跟踪一个行号,以便只取第一行 我一直在谷歌上四处寻找,但没有多少运气弄明白这一点,我这里有一个SQL小提琴:,我知道这很复杂。如果有帮助,您可以去掉WHERE rn=1并添加一列以查看行号。基本上我需要的是添加一个列,说明它是否聚合。。。我相信最好的办法是在第一排看是否有第二排。有人知道一个简单的方法吗 select userid, favoriteanimal, row_numbe

在使用SUM()时,我试图标记一行是否实际与另一行相加。还有计算min()、max()的行,我正在跟踪一个行号,以便只取第一行

我一直在谷歌上四处寻找,但没有多少运气弄明白这一点,我这里有一个SQL小提琴:,我知道这很复杂。如果有帮助,您可以去掉WHERE rn=1并添加一列以查看行号。基本上我需要的是添加一个列,说明它是否聚合。。。我相信最好的办法是在第一排看是否有第二排。有人知道一个简单的方法吗

select
    userid, favoriteanimal,
    row_number()  over (partition by name, email, favoriteanimal, grp order by firstday) as rn,
    min(firstday) over (partition by name, email, favoriteanimal, grp) as firstday,
    max(lastday)  over (partition by name, email, favoriteanimal, grp) as lastday,
    sum(daysused) over (partition by name, email, favoriteanimal, grp) as daysused
from concatenated

这就是我试图从中获取信息的SQL,如果该行被聚合(min、max或sum),则该行有多个行号条目。因此,我设想有一种方法可以在有多行的情况下“更新”第1行。

COUNT(*)OVER(…)>1
??您所说的新列指示该行是否已聚合是什么意思?这是什么意思?您希望fiddle中的输出是什么?我希望userid2和userid3有一个标记,表明它们是聚合的。我的意思是,它们有一行或多行求和。如果你看这把小提琴:你可以看到这两个有多行。