Sql 每天统计重复来电的人数
我有下表,我试图使用SQL来显示当一个Extranal_numbers第一次呼叫被放弃,然后当天的下一个呼叫被用户应答时的返回呼叫数 外接电话号码 电话号码 开始日期 连接日期 类别 目标类型 12324 4699315612876800 2021-03-14T12:51:24.453000 2021-03-14T12:52:13.613000 新当选的 呼叫中心 12324 6246986274242560 2021-03-14T12:52:06.280000 2021-03-14T12:52:14.334000 新当选的 使用者 12324 5846017495465984 2021-03-16T12:32:17.853000 无效的 被遗弃的 办公室 12324 4598643760496640 2021-03-16T12:38:25.682000 无效的 被遗弃的 部门 12324 5957902265942016 2021-03-16T12:40:08.024000 2021-03-16T12:41:09.847000 新当选的 呼叫中心 12324 5244220798074880 2021-03-16T12:41:03.765000 2021-03-16T12:41:09.978000 新当选的 使用者 12324 5957902265942019 2021-03-16T15:40:08.024000 2021-03-16T12:41:09.847000 新当选的 呼叫中心 12324 5244220798074881 2021-03-16T15:41:03.765000 2021-03-16T12:41:09.978000 新当选的 使用者Sql 每天统计重复来电的人数,sql,google-bigquery,Sql,Google Bigquery,我有下表,我试图使用SQL来显示当一个Extranal_numbers第一次呼叫被放弃,然后当天的下一个呼叫被用户应答时的返回呼叫数 外接电话号码 电话号码 开始日期 连接日期 类别 目标类型 12324 4699315612876800 2021-03-14T12:51:24.453000 2021-03-14T12:52:13.613000 新当选的 呼叫中心 12324 6246986274242560 2021-03-14T12:52:06.280000 2021-03-14T12:52
如果我理解正确,您可以这样做:
SELECT c.external_number
, c.call_id
, c.date_started
, c.date_connected
, c.category
, c.target_type
, CASE WHEN c.category <> LCAT THEN 'Yes'
WHEN c.category <>c.Rcat THEN 'No'
END AS repeat
FROM (
SELECT *
, LAG(category,1,'NA') OVER (PARTITION BY external_number ORDER BY date_started) Lcat
, LEAD(category,1,'NA') OVER (PARTITION BY external_number ORDER BY date_started) Rcat
FROM calls
WHERE ( category = 'incoming' and target_type = 'user') OR category = 'abandoned'
) c
WHERE
(c.category <> Lcat OR c.category <>c.Rcat)
AND c.category <> 'abandoned'
此查询的工作方式是,它查找进入类别中且具有target_type='user'的行,或者由于我们关心这些行而处于废弃类别中的行,然后我们查看每行中的上一个或下一个类别,它检测类别中是否有更改并报告它们
注:
repeat将在任何呼叫被放弃后报告yes,即使在没有成功呼叫之前也是如此。
此查询仅针对每个外部_编号,如果您需要结果,例如每天针对每个外部_编号;您需要相应地调整分区
我使用的是bigquery,它似乎不喜欢LAGcategory,1,category或LEADcategory,1,category,LAGcategory,1做同样的事情吗?真奇怪!显示它得到3个参数如果3个参数找不到以前的值,则为默认值,但是如果删除它,则会得到空值,通过对查询进行一些小的更改,您可以处理它,但答案中的查询应该可以工作,我可以去掉第3个参数,现在我只需要每天做一次,就像是按外部编号划分一样,datedate开始按日期排序,用3个参数开始,我不断得到这个错误运行查询参数3到分析函数“lag”必须是常量。找到德里夫。