sql - 计算SQL中的行之间花费的时间
问题描述
我是 SQL 新手,因此是这个问题。我有下表。
id | prev_state | curr_state | start_curr_state |selected_to_interview|interview_to_selected|
1 | APPLICANT. | INTERVIEW | 2020-10-12. | ? |
2 | NULL | APPLICANT. | 2020-10-16 | NULL | NULL. |
1 | INTERVIEW. | SELECTED. | 2020-1--20. | NULL | ? |
我有一组 3 个预先确定的候选状态 - APPLICANT
, INTERVIEW
& SELECTED
。该表提供了从一个阶段过渡到另一个阶段的候选人的记录。start_curr_state 是当前状态的开始日期 - 采访状态的第 1 行开始。根据转换的状态,我需要计算每个阶段转换所需的时间。
start_curr_state
我知道时间是日期差异prev_state
-start_curr_state
但我不确定如何计算。任何帮助表示赞赏。
解决方案
您可以使用LAG()
,我假设您对每个人都有一个名为“candidateid”的密钥:
select t1.*
, CASE WHEN t1.curr_state = 'INTERVIEW' AND prev_state = 'APPLICANT'
THEN datediff( lag(t1.start_curr_state) over (partition by t1.candidateid order by t1.start_curr_state) ,t1.start_curr_state)
ELSE NULL END selected_to_interview
from tablename t1
推荐阅读
- sql - SQL 日期转换为 UNIX 时间戳为同一时间戳提供多个 UNIX 时间
- python - 使用 Python 确定 PDF 是否由 Google Docs 生成
- python - 为什么使用字符串是正确的而不使用字符串是有问题的?
- java - QuartzDesk 无法管理 Spring Boot 2 应用程序中的 Quartz Jobs 和 Trigger
- shacl - 如何创建 SHACL 规则以从 rdfs:subClassOf 推断 rdf:type
- ios - Xcode 版本 11.4 (11E146) 中的自定义 Siri 意图生成中断
- python - 如何使用连接到数据库的python创建动态网站
- database - 仅将 Wordpress 中的特定数据库项目从暂存迁移到实时
- mongodb - 如何使用 @Query -> Spring data mongo 从 @DBRef 文档中获取数据
- react-native - React Native Webview OnLoad 调用了两次