【问题标题】:Find min date for each stage of a process查找流程每个阶段的最短日期
【发布时间】:2022-01-24 17:35:15
【问题描述】:

我有一个流程阶段,我需要找出它们何时发生。不幸的是,我只能通过文本提取来做到这一点。 我已经提取了与相关文本列中找到的阶段相匹配的日期。不幸的是,一些文本值相似并且被错误地输入到表中,因此提取的日期被重复。 我无法编辑现有表,但是,我正在尝试根据我正在执行的操作(文本提取、日期排序等)创建一个新表。 我需要确保日期没有混淆并且是连续的。例如第 1 阶段的日期早于第 2 阶段等...

数据样本

Person_ID Stage Stage_Num Stage_Date
1 Stage-1 1 2020-01-01
1 Stage-1 1 2021-02-02
1 Stage-2 2 2020-05-01
1 Stage-2 2 2020-05-06
1 Stage-1-R 3 2021-02-02
1 Stage-1-R 3 2020-01-01

我期待的最终结果是

Person_ID Stage Stage Num Stage_Date
1 Stage-1 1 2020-01-01
1 Stage-2 2 2020-05-01
1 Stage-1-R 3 2021-02-02

我尝试了以下方法:

select a.person_id,a.stage, a.stage_num, min(a.stage_date)   
from
all_activity_dates a   join all_activity_dates b   
where
a.stage_num<=b.stage_num   
and a.stage_date<b.stage_date   
group by
a.person_id, a.stage, a.stage_num   
order by stage_num

但是,第 1 阶段和第 3 阶段的结果日期是相同的。 如何正确执行?

UPD1致结束我问题的人:我不能简单地按 STAGE 选择最小值和分组(我绝对知道该怎么做) 在我最初的问题中,我声明我需要连续订单,但是使用简单的 MIN DATE STAGE 1 和 STAGE 3 将具有相同的 DATE ,但 STAGE 3 必须在 STAGE 2 之后。

UPD2另外,对于我缺少提取日期的阶段,我需要在前一阶段和下一阶段之间添加一个随机日期

如果它是重复的,我很高兴检查一个有效的解决方案,我只是找不到类似措辞的问题

【问题讨论】:

  • 对于每个阶段,您是否希望最早的日期晚于早期阶段的任何日期?您是否正在寻找可以处理多个阶段(不仅仅是 3 个阶段)的查询?

标签: sql group-by


【解决方案1】:

这是一个至少可以过滤掉会弄乱 Stage_num 顺序的日期的解决方案。

select Person_ID, Stage, Stage_Num
, max(Stage_Date) as Stage_Date
from your_table t
where not exists (
        select 1 
        from your_table t2
        where t2.person_id = t.person_id
          and t2.stage_num = t.stage_num + 1
        group by t2.person_id, t2.stage_num
        having max(t2.stage_date) < t.stage_date
   )
group by Person_ID, Stage, Stage_Num
order by Person_ID, Stage_Num;
Person_ID Stage Stage_Num Stage_Date
1 Stage-1 1 2020-01-01
1 Stage-2 2 2020-05-06
1 Stage-1-R 3 2021-02-02

dbfiddle here

上的演示

但是添加缺少的 Stage_nums 与随机舞台名称和日期的事情太不清楚了。
您可以将联接留在计数表中。或者只是手动添加它们。

【讨论】:

  • 谢谢!我会看看我能找出日期丢失的地方,但是对于 dups 这工作完美
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 2012-11-11
  • 2016-09-02
  • 2023-02-17
  • 2020-11-19
  • 1970-01-01
  • 2016-06-09
相关资源
最近更新 更多