sql - 如何查询审计表以添加开始结束日期
问题描述
我有一个审计表,显示一个值何时更改为特定标志('Y'、'N'、'A'、'B'),我想组织数据,以便对于每个 ID,它会反映何时该标志的开始和结束时间。
样本数据:
ID | Flag_Audit | 更新日期时间 |
---|---|---|
1 | 将标志从:N 更改为:B | 2021 年 8 月 6 日 2:58 |
1 | 将标志从:B 更改为:Y | 2021 年 8 月 6 日 12:58 |
1 | 将标志从:Y 更改为:N | 2021 年 8 月 20 日 10:58 |
2 | 将标志从:Y 更改为:N | 2021 年 8 月 1 日 12:38 |
2 | 将标志从:B 更改为:Y | 2021 年 8 月 11 日 10:58 |
预期输出:
ID | 旗帜 | 从日期 | 迄今为止 |
---|---|---|---|
1 | 乙 | 2021 年 8 月 6 日 2:58 | 2021 年 8 月 6 日 12:58 |
1 | 是 | 2021 年 8 月 6 日 12:58 | 2021 年 8 月 20 日 10:58 |
1 | ñ | 2021 年 8 月 20 日 10:58 | 无效的 |
2 | ñ | 2021 年 8 月 1 日 12:38 | 2021 年 8 月 11 日 10:58 |
2 | 是 | 2021 年 8 月 11 日 10:58 |
你能帮我解决这个问题吗?谢谢!
解决方案
像这样的东西应该适合你:
select id, right(flag_audit, 1) as flag,
updateddatetime as from_date,
lead(updateddatetime) over (partition by id order by updateddatetime) as to_date
from t;
推荐阅读
- bash - 如何传递文件我使用 grep 到 sed 和 -n 切换到替换文件
- amazon-ec2 - 保存密码的 SSH 或 MobaXterm 到 AWS EC2 实例不起作用
- php - 图像未显示在 php 的 exeoutput 下使用 mpdf
- r - 添加表格标题编号 R-Markdown
- python - 当它“相同”时,张量流中的内核大小和步幅的填充值公式是什么?
- sql - Oracle SQL 插入(如果不存在)
- excel - 使用暗淡变量将公式输入范围
- c++ - 在内联流重载中遍历向量的问题
- embedded - 在编译时禁用 systemD 服务
- c++ - boost::thread_group 在线程完成后永远挂起