/* Выбираются работники со среднемесячным числом продаж меньше половины среднего */

--временная таблица для хранения числа продаж каждого сотрудника в каждом месяце
declare @t_cnt table(cnt int, emp int);

insert into @t_cnt
        select count(*), f.EmployeeKey 
        from FactResellerSales f inner join DimTime t
                                on f.OrderDateKey = t.TimeKey
        group by f.EmployeeKey, t.EnglishMonthName, t.CalendarYear

--временная таблица для хранения среднемесячного числа продаж каждого сотрудника
declare @t_av table(av int, emp int);

insert into @t_av
        select avg(cnt), emp 
        from @t_cnt
        group by emp

--переменная, хранящее среднее значение среднемесячных чисел продаж по всем сотрудникам
declare @a int;
set @a = (select avg(av) from @t_av)
--распечатка
select 'a'=@a

--выборка сотрудников со среднемесячным числом продаж, 
--меньшим половины среднего значения среднемесячных чисел продаж по всем сотрудникам 
select av, e.* 
from @t_av inner join DimEmployee e
                on emp = e.EmployeeKey
where av < @a / 2