Ну вот задачки (пытался написать в стиле вопросов MS-овских тестов на MCAD
![Wink ;)](./images/smilies/icon_wink.gif)
):
Вы работаете на фирму D-B-Telecom, которая предоставляет услуги IP-телефонии для частных и корпоративных пользователей. До некоторого времени прирост клиентской базы был стабилен и фирма планомерно расширялась. Но, с недавних пор, прирост клиентской базы остановился, и, в некоторые моменты был отрицательным. Руководство компании обеспокоенное данным положением вещей дало указание отделу маркетинга проинвестигировать ситуацию и выдать условия для ряда маркетинговых акций, которые, однако же, не должны существенно повлиять на уровень прибыли компании. Разумеется, отдел маркетинга обратился к Вам, как ведущему разработчику (и DBA одновременно
![Wink ;)](./images/smilies/icon_wink.gif)
lol ) с просьбой о помощи.
Итак, исходные данные: Все звонки, осуществляемые вышеозначенными пользователями аккуратно логгируются в корпоративной базе данных. Для упрощения задачи примем, что таблица с логом звонков имеет следующую структуру:
create table Calls (
CustomerID int,
CallDate datetime,
CallDuration int)
а таблица кастомеров создается с помощью следующего DDL-скрипта:
create table Customers (
CustomerID int,
ContractStarted datetime,
ContractFinished datetime,
IsCorporate bit,
Name varchar(150)
)
пояснения: IsCorporate = 1, если это корпоративный клиент, ContractFinished является NULL до тех пор, пока кастомер не расторгает договор.
Для того, что бы понять, какие маркетиновые акции будут иметь наименьший impact на profit компании, отделу маркетинга требуется знать:
1) гистограмму распределения кол-ва звонков за последние три месяца по дням недели (в какие дни недели меньше всего звонков)
2) гистограмму распределения кол-ва звонков по часам (в какие часы меньше всего звонят, so, делая скидки на такие часы компания потеряет меньше денег) за последние 6 месяцев для корпоративных и частных пользователей отдельно (желательно в один запрос
![Wink ;)](./images/smilies/icon_wink.gif)
)
Компания заинтересована в возврате ушедших клиентов, поэтому наши маркетологи предлагают создать льготные условия возвращающимся клиентам и совершенно особенные условия для "дорогих" возвращающихся клиентов, соответственно, им нужно:
3) вывести список названий _компаний_ (не частных пользователей), которые разорвали контракт с нашей фирмой в течении предыдущих 3-х месяцев и которые наговорили не менее 10000 минут (нам не интересны малоговорящие компании для данного предложения) в течении всего срока действия договора, что бы послать им специальные предложения для "возвращающихся клиентов"
Кроме того, компания намерена провести снижение цен для наиболее ценных текущих клиентов, поэтому маркетологам необходимы следующие данные:
4) вывести название всех компаний-клиентов, а так же кол-во выговоренных минут, которые за последние пол-года наговорили не менее 10000, 5000, 1000 минут в месяц (вероятно здесь требуется создать сторед просиджер, что бы не делать 3 разных запроса).
5) ... ну устал я, народ может чего еще придумает. это же так просто
![Wink ;)](./images/smilies/icon_wink.gif)
Steel helmet protects your teeth from the morning to the evening.