旧作业和新作业列 SQL
Posted
技术标签:
【中文标题】旧作业和新作业列 SQL【英文标题】:Old Job and New Job columns SQL 【发布时间】:2021-04-09 15:20:27 【问题描述】:是否可以显示 3 个新列 - 旧作业、新作业、起始日期
我下面有一个 sql 的例子。
select
emp_no,
emp_name,
job_title,
valid_from,
valid_to
from
tableA
我想显示列 -
Emp No Emp 名称、旧作业、新作业、起始日期
Old Job 和 New Job 是 Job Title 中的值,From Date 是 Valid From
TIA
亚西尔
【问题讨论】:
看起来像lead / lag
而不是 pivot
请提供样本数据和所需的输出
附上图片作为参考
图片是not a sample data请阅读sql tag wiki
顺便说一句,我不是“魔法约会”的忠实粉丝。即:valid_to = 31/12/9999。如果 'valid_to' 日期尚未确定(无论出于何种原因),则将其保留为 NULL。
【参考方案1】:
试试lag
:
select *
from (
select
emp_no,
emp_name,
lag(job_title) over (partition by emp_no order by valid_from) as old_job,
job_title as new_job,
valid_from
from tableA
)
where old_job is not null
【讨论】:
谢谢。我会试试看以上是关于旧作业和新作业列 SQL的主要内容,如果未能解决你的问题,请参考以下文章
对 SparkSQL 中数组列的每个元素执行 UDF(需要另一个 spark 作业)
翻译— 通往SQL Server代理的阶梯-二级:作业步骤和子系统
翻译:通往SQL Server代理的阶梯-二级:作业步骤和子系统