sql - 日期列表 - 查找日期之间的老化
问题描述
我正在编写一个查询以从case_history
表中检索老化数据(来自 salesforce)。由于团队正在处理案例,案例会经历新的、工作的、质量检查等不同的阶段,请更正和关闭。
Case_id | Edit_Date | Field | Old_Value | New_Value
---------------------------------------------------------------------------------------------------
xvywiqhn | 2019-12-12 08:05:59 | Status | Quality Check | Closed
xvywiqhn | 2019-12-12 07:21:55 | Status | Please Correct | Quality Check
xvywiqhn | 2019-12-09 08:32:40 | Status | Quality Check | Please Correct
xvywiqhn | 2019-12-09 08:08:49 | Status | Working | Quality Check
xvywiqhn | 2019-12-09 07:35:24 | Status | New | Working
我正在尝试以获取下一个日期和 new_value 的方式创建列,以便我可以在该阶段老化。
Case_id | Edit_Date | Old_Value | New_Value | Completion_Date | End_Stage
--------------------------------------------------------------------------------------------------------
xvywiqhn | 2019-12-12 08:05:59 | Quality Check | Closed | NULL | NULL
xvywiqhn | 2019-12-12 07:21:55 | Please Correct | Quality Check | 2019-12-12 08:05:59 | Closed
xvywiqhn | 2019-12-09 08:32:40 | Quality Check | Please Correct | 2019-12-12 07:21:55 | Quality Check
xvywiqhn | 2019-12-09 08:08:49 | Working | Quality Check | 2019-12-09 08:32:40 | Please Correct
xvywiqhn | 2019-12-09 07:35:24 | New | Working | 2019-12-09 08:08:49 | Quality Check
有没有办法我可以做到这一点?
SELECT
case_id,
edit_date,
old_value,
new_value,
"getting next edit_date",
"getting new_value for next edit_date"
FROM case_history
解决方案
我们可以在LAG
这里尝试使用该功能:
SELECT
case_id,
edit_date,
old_value,
new_value,
LAG(edit_date) OVER (PARTITION BY case_id ORDER BY edit_date) completion_date,
LAG(new_value) OVER (PARTITION BY case_id ORDER BY edit_date) end_stage
FROM case_history
ORDER BY
case_id,
edit_date;
推荐阅读
- java - 如何在 Beanshell 中使用或转义 java 8 Lambda 表达式
- android - Android - SMS Retriever API - 计算应用程序的哈希字符串问题
- google-forms - 如何在谷歌表单中设置默认语言以从不同的浏览器进行调查
- javascript - 如何使用闭包编译器从另一个压缩文件中获取变量
- junit - 带有 mockito 的多线程类的 junit
- python - Pandas DataFrame 的多个列表
- webstorm - 在 WebStorm 的调试控制台中显示运行时变量
- node.js - AWS Cognito 托管 UI - 如何允许 EXTERNAL_PROVIDER 用户创建密码?
- python - 如何在 ruamel 中保留评论
- django - 在 django 的 get 方法中隐藏 csrf 令牌