в этом утверждении
from #base U group by grouping sets ( (a,b,c,d) --1 ,(a,b,c,d,e,f) --2 ,(a,b,c,d,e,f,g) --3 )
возможно в одном наборе фильтр до агрегирования?
(a,b,c,d,e,f) where b <> 0
Может быть, вы можете попробовать это.
select ... from #base U group by grouping sets ((a,b,c,d), (a,b,c,d,e,f,g)) union all select ... from #base U where b<>0 group by a,b,c,d,e,f
Надеюсь, что это поможет вам.
С наилучшими пожеланиями,
Рейчел
Подход может состоять в том, чтобы поместить (a, b, c, d, e, f) группировку с фильтром как отдельный запрос, а затем использовать UNION для объединения результатов.