У меня есть 3 таблицы Customer, Applications, ApplicationHistory. Я должен получить следующие данные:SQL: Среднее количество заявок на клиента за последние x месяцев
- Получить среднее число заявок на одного клиента за последние 3 месяца
- Получить количество клиентов с по крайней мере одним или несколькими приложениями за последние 3 месяца
I пытался группу, однако, имеющих следующие вопросы:
ApplicationHistory таблица имеет несколько записей для каждого приложения, теперь знаю, как Elimi Нейт их &
Примечание: Включили таблицу клиентов, как нужно фильтровать данные по CustomerType
Можете ли вы подсказать, как я могу получить это право?
Большое спасибо,
Мое решение (не работает)
SELECT a.ApplicationId, a.CustomerId, count(*) count
from [application] a
inner join [applicationhistory] ah on a.ApplicationId = ah.ApplicationId
inner join Customer c on c.CustomerId = a.CustomerId
where ah.EventDate between @StartDateFilter and @EndDateFilter
--c.CustomerType in (A, B)
group by a.ApplicationId, a.CustomerId
Структура таблицы:
Customer
Name CustomerId CustomerType
test1 1 A
test2 2 B
Applications
ApplicationId CustomerId
3 1
4 1
5 2
6 2
7 2
ApplicationHistory
ApplicationId EventDate EventType
3 2014-12-01 New
3 2014-12-01 Updated
3 2014-12-02 Withdrawn
4 2014-12-02 New
4 2014-12-03 Updated
5 2014-12-05 New
5 2014-12-06 Updated
5 2014-12-06 Updated
5 2014-12-07 Updated
6 2014-12-08 New
ли вам определить «среднее число приложений» как ApplicationHistories с EventType «New» в заданный временной интервал или любой EventType? –
@Bernd: «Среднее количество приложений» будет в среднем число приложений в таблице приложений для клиента. Кроме того, система fyi создает строку в таблице ApplicationHistory для каждого изменения, сделанного клиентом, то есть новое приложение, обновление в приложении и т. Д. И чтобы применить фильтр даты, я должен использовать эту таблицу ApplicationHistory в запросе, так как он имеет более чем одну строку для каждого приложения (для разных типов событий), я не могу обойти это. – Maverick09
Редактируйте свой вопрос с образцами данных. Таблица «Приложения», как вы ее определили, не имеет «количества приложений». Вы можете получить общее количество приложений, но среднее значение на самом деле не имеет смысла. –