t- sql сравнить среднее значение с текущими данными - PullRequest
2 голосов
/ 07 февраля 2020

У меня есть задача получить среднее значение числа записей, полученных за последние 10 месяцев, и количества записей в этом месяце. Например, в приведенном ниже наборе записей среднее число записей за месяц за последние три месяца составляет 4,33. и количество записей в этом месяце равно 3. Следовательно, ожидаемый результат будет

Result

declare @recordsReceived table (id int, dob date)

INSERT @recordsReceived VALUES (1,'2020-01-01')
INSERT @recordsReceived VALUES (2,'2020-01-08')
INSERT @recordsReceived VALUES (3,'2020-01-17')
INSERT @recordsReceived VALUES (5,'2020-02-03')
INSERT @recordsReceived VALUES (6,'2020-02-09')
INSERT @recordsReceived VALUES (7,'2020-02-16')
INSERT @recordsReceived VALUES (8,'2020-02-21')
INSERT @recordsReceived VALUES (9,'2020-02-28')
INSERT @recordsReceived VALUES (10,'2020-03-01')
INSERT @recordsReceived VALUES (11,'2020-03-07')
INSERT @recordsReceived VALUES (12,'2020-03-21')
INSERT @recordsReceived VALUES (13,'2020-03-28')
INSERT @recordsReceived VALUES (14,'2020-04-03')
INSERT @recordsReceived VALUES (15,'2020-04-09')
INSERT @recordsReceived VALUES (16,'2020-04-30')
INSERT @recordsReceived VALUES (5,'2020-02-03')
INSERT @recordsReceived VALUES (6,'2020-02-09')
INSERT @recordsReceived VALUES (7,'2020-02-16')
INSERT @recordsReceived VALUES (8,'2020-02-21')
INSERT @recordsReceived VALUES (9,'2020-02-28')
INSERT @recordsReceived VALUES (10,'2020-03-01')
INSERT @recordsReceived VALUES (12,'2020-03-21')
INSERT @recordsReceived VALUES (12,'2020-03-21')
INSERT @recordsReceived VALUES (13,'2020-03-28')
INSERT @recordsReceived VALUES (14,'2020-04-03')
INSERT @recordsReceived VALUES (15,'2020-04-09')
INSERT @recordsReceived VALUES (16,'2020-04-30')

1 Ответ

2 голосов
/ 07 февраля 2020

Вы можете попробовать это,

Select * From (
  Select count(month(dob))*1.00/count(distinct(month(dob))) As [TAVG] 
  from @recordsReceived 
  Where month(dob)  < (Select max(month(dob)) from @recordsReceived)) A

 ,
 (Select count(month(dob)) [Current]
 from @recordsReceived 
 Where month(dob)  = (Select max(month(dob)) from @recordsReceived)) B
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...