T-SQL - использование GROUP BY GROUPING SET - фильтрация одного набора
В этом заявлении
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
2 ответа
Подход может заключаться в том, чтобы поместить (a,b,c,d,e,f) группировку с фильтром в качестве отдельного запроса, а затем использовать UNION для объединения результатов.
Может быть, вы можете попробовать это.
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
Надеюсь, это поможет вам.
С уважением,
Рейчел