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 

Надеюсь, это поможет вам.

С уважением,

Рейчел

Другие вопросы по тегам