gpt4 book ai didi

sql - 乱序显示时差

转载 作者:行者123 更新时间:2023-12-02 22:28:34 24 4
gpt4 key购买 nike

对于每个 WorkflowId 分组,我想计算 20 的流程代码在 10 的流程代码之前有多少次 LastModifiedTime。

此查询显示表格布局和一些数据:

SELECT TOP 10 * 
FROM master.ProcessLogging with (nolock)
WHERE ProcessCode = 10 OR ProcessCode = 20
ORDER BY WorkflowId, ProcessCode

enter image description here

我已经尝试了一些方法,但我很难让它发挥作用。每次尝试都会导致不值得在这里发布的死胡同。有没有办法查看 20 在 10 之前出现的所有时间?甚至可以看出它们之间的时差?

最佳答案

经过审查,如果一个组中超过 10 个,这将中断

一个组中的人数会超过 10 人吗?如果是,您希望如何处理?

SELECT p10.WorkflowId, count(p20.WorkflowId)
FROM master.ProcessLogging p10
left outer join master.ProcessLogging p20
on p20.WorkflowId = p10.WorkflowId
and p20.EventTime < p10.EventTime
and p20.ProcessCode = 20
where p10.ProcessCode = 10
group by p10.WorkflowId
order by p10.WorkflowId

-- 由 Bob Horn 编辑 --

稍微修改上面的查询以显示 10 秒和 20 秒之间的最大时间差。

SELECT p10.WorkflowId, min(p20.WorkflowId), 
DATEDIFF(ms, min(p10.lastmodifiedtime), min(p20.lastmodifiedtime)) as 'Diff (ms)'
FROM master.ProcessLogging p10
join master.ProcessLogging p20
on p20.WorkflowId = p10.WorkflowId
and p20.EventTime < p10.EventTime
and p20.ProcessCode = 20
where p10.ProcessCode = 10
group by p10.WorkflowId
order by ABS(DATEDIFF(ms, min(p10.lastmodifiedtime), min(p20.lastmodifiedtime))) DESC

关于sql - 乱序显示时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com