当NULL值分组时最简单的方法是什么?
b.groups()
结果如下:
您会看到名称'Robert'的值为NULL。 我该如何对溢价($ 400)和只有一行没有NULL承保范围的值求和?
但是我需要使它看起来像这样:
在这种情况下,我无法使用MAX()函数。
答案 0 :(得分:1)
此解决方案假定NULL
将被分组为NOT NULL
中一个“随机” ID/Name
值。如果可以使用多个值,则此查询在两次执行之间不会返回稳定的结果集:
select ID,
Name,
ISNULL(m1.Coverage, sub.Coverage) AS Coverage,
sum(Premium) as Premium
FROM @MyTable m1
cross apply (SELECT TOP 1 m2.Coverage FROM @MyTable m2 WHERE Coverage IS NOT NULL
AND m1.ID = m2.ID AND m1.Name = m2.Name) sub
group by ID
,Name
,ISNULL(m1.Coverage, sub.Coverage);