/* Выбираются работники со среднемесячным числом продаж меньше половины среднего */ --временная таблица для хранения числа продаж каждого сотрудника в каждом месяце 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