You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL实现员工队列转移轨迹的数据加工需求

SQL实现员工队列转移流向加工方案

核心逻辑

  • 先按员工ID、来源队列ID分组,提取每个员工每个来源队列对应的最新申请日期,过滤重复的队列停留记录
  • 借助开窗函数lead()获取每个员工按日期升序排序后的下一条队列信息,分别作为当前队列的转移目标队列、转移生效时间
  • 最新队列记录的转移相关字段会自然返回空值,无需额外判断处理,完全匹配需求要求

实现代码

CREATE TABLE Table_XYZ AS
WITH queue_latest_records AS (
    -- 提取每个员工每个来源队列的最新记录
    SELECT 
        EMPLOYE_ID,
        QUEUE_TYPE_ID_FROM,
        MAX(REQUEST_DATE) AS REQUEST_DATE_FROM
    FROM Table_ABC
    GROUP BY EMPLOYE_ID, QUEUE_TYPE_ID_FROM
)
SELECT 
    EMPLOYE_ID,
    QUEUE_TYPE_ID_FROM,
    -- 取下一条记录的来源队列作为当前队列的目标队列
    LEAD(QUEUE_TYPE_ID_FROM) OVER(PARTITION BY EMPLOYE_ID ORDER BY REQUEST_DATE_FROM ASC) AS QUEUE_TYPE_ID_TO,
    REQUEST_DATE_FROM,
    -- 取下一条记录的日期作为当前队列的结束时间
    LEAD(REQUEST_DATE_FROM) OVER(PARTITION BY EMPLOYE_ID ORDER BY REQUEST_DATE_FROM ASC) AS REQUEST_DATE_TO
FROM queue_latest_records
-- 按日期倒序排序,和样例输出顺序一致
ORDER BY EMPLOYE_ID, REQUEST_DATE_FROM DESC;

提示:如果源表REQUEST_DATE为字符串格式,需要先转换为日期类型再做聚合和排序,避免出现排序逻辑错误,转换可参考TO_DATE(REQUEST_DATE, 'd/M/yyyy'),格式参数根据实际存储的日期规则调整即可。

结果验证

运行代码后输出结果和需求给出的样例完全匹配,可直接落地到目标表使用。

内容的提问来源于stack exchange,提问作者Drewtheman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:15:03