sql - 从表中的单个列生成日期差异,sql server
问题描述
Shift Time Action
TA 2021-03-17 10:39:11.613 OF
TA 2021-03-17 11:09:11.353 ON
TA 2021-03-17 13:49:20.760 OF
TA 2021-03-17 14:10:20.760 ON
你好,我想知道你是否可以帮助我。我有一个输入和输出表。我记录它发生的时间和日期。但出于报告目的,我需要对该列进行日期差异。任何人都知道如何生成查询以实现以下结果。
Shift Time Action Shift Time Action
TA 2021-03-17 10:39:11.613 OF TA 2021-03-17 11:09:11.353 ON
TA 2021-03-17 13:49:20.760 OF TA 2021-03-17 14:10:20.760 ON
解决方案
假设值完全交错,您可以使用lead()
然后过滤:
select *
from (select shift, time, action,
lead(time) over (partition by shift order by time) as next_time,
lead(action) over (partition by shift order by time) as next_action
from t
) t
where action = 'OF';
推荐阅读
- python - 我需要一种方法来摆脱我的 numpy 数组中的大括号
- php - PHP 中的 shell_exec
- string - 替换字符串名称中的文本
- python - 分割前去除图像周围的光晕(预处理)
- r - Shiny中数据库错误时的错误警报
- java - 如何为提示用户输入 int 的方法编写 Junit 测试
- javascript - 如何在我的应用中显示本地通知?
- java - 无法使用 dockerfile for (cucumber, java, maven project) 运行 headless chrome
- java - 为什么 ColorStateList 不适用于 GradientDrawable?
- python - 如何制作一个也可用作上下文管理器的 python 方法?