【发布时间】:2020-03-14 15:21:33
【问题描述】:
我正在处理一份包含数十亿行的报告中的电信公司的 CDR(呼叫详细信息记录)数据, 我要求一个 SQL 查询,让我可以分析用户拨打特定 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(当天 PRI_IDENTITY 调用 5 次的 RECIPIENT_NUMBERS 的计数)
- 频率 10(PRI_IDENTITY 一天调用 10 次的 RECIPIENT_NUMBERS 的计数)
- 频率 15(PRI_IDENTITY 一天调用 15 次的 RECIPIENT_NUMBERS 的计数)
- 频率 20(PRI_IDENTITY 一天调用 20 次的 RECIPIENT_NUMBERS 的计数)
- 频率超过 20(PRI_IDENTITY 一天调用超过 20 次的 RECIPIENT_NUMBERS 个计数)
提示:图片上的示例数据中的 PRI_IDENTITY 和 RECIPIENT_NUMBERS 在真实数据中是完整的,由于隐私问题,我无法在线分享全部信息
【问题讨论】:
-
在哪一天?您正在按月进行总结。
-
不是特定的一天,而是我们使用 PRI_IDENTITY 调用 RECIPIENT_NUMBERS 5 次或 10 次等的年/月的每一天...