Я работаю над данными CDR (Call Details Record) для телекоммуникационной компании в отчете с миллиардами строк, я прошу запрос SQL, который позволил бы мне проанализировать частоту звонков абонента, чтобы указать c MSISDN, чтобы указать, каким подписчикам следует предлагать семейные предложения, или определить, сколько пиров в их сети имеют конкурентные услуги.
В моей таблице содержится огромное количество деталей, я получил полезные, которые помогают мне получить эту информацию , таблица содержит:
- PRI_IDENTITY (номер вызывающего абонента)
- RECIPIENT_NUMBER (вызываемый номер)
- метка времени (дата / время звонка)
- Call_Duration (в секундах)
- CALLED_HOME_NETWORK_CODE (Сетевой код номера получателя)
SELECT
PRI_IDENTITY, RECIPIENT_NUMBER,
TO_timestamp(CUST_LOCAL_START_DATE,'yyyyMMddHH24miss')::Date AS Call_Date,
ACTUAL_USAGE AS Call_Duration,
CALLED_HOME_NETWORK_CODE
FROM TBL.CDR
пример данных
Вывод, который мне нужно выяснить, приведен ниже:
- Год
- Месяц
- PRI_IDENTITY
- CALLED_HOME_NETWORK_CODE
- Частота 5 (Количество RECIPIENT_NUMBERS, которые PRI_IDENTITY вызывал 5 раз в день)
- Частота 10 (Количество RECIPIENT_NUMBERS, которые PRI_IDENTITY вызывали 10 раз в день)
- Частота 15 (Количество RECIPIENT_NUMBERS, которые PRI_IDENTITY вызывал 15 раз в день)
- Частота 20 (Количество RECIPIENT_NUMBERS, которые PRI_IDENTITY вызывали 20 раз в день)
- Частота более 20 (The количество RECIPIENT_NUMBERS, которые PRI_IDENTITY вызывал более 20 раз в день)
ПОДСКАЗКА: PRI_IDENTITY и RECIPIENT_NUMBERS на данных образца на изображении заполнены в реальные данные и из-за конфиденциальности я не мог поделиться всей информацией онлайн