Oracle DB - 计算非连续操作

时间:2017-09-18 11:02:33

标签: sql oracle

您好我的oracle db中的SQL应该返回显示的变量值的数量,如下所示。

操作字段将插入和删除作为不同时间戳的值,但是当我报告计数时,它应该与给定输入相似。

enter image description here

逻辑是所有08/21/2017 6:00 PM 08/24/2017 6:00 PM 08/30/2017 6:00 PM 或所有Insert都应计为Delete,直到它分别到达1delete

与呼叫中心一样,客户可以添加任意数量的合规(插入),但对于该用户ID应该计为1,如果已经注册的投诉已解决(删除),那么下一个投诉顺序(插入)应该是算作一个。

非常感谢任何帮助,非常感谢!

德瓦

1 个答案:

答案 0 :(得分:0)

试试这个:

select keyfield, action, count(*) from (
  select lead(action, 1, 'other') over (partition by keyfield order by timestamp) as naction, action from t1)
where action != naction group by action, keyfield;

想法是使用分析函数仅选择其他(忽略相同操作链)操作所遵循的记录。然后按操作分组并使用id进行计数。