sql - 识别具有相同 ID 的列
问题描述
resolutiondate
我想创建一个新列,在这种情况下,“Reiterate”为具有相同键(Clave)并且在and之间的时间少于 7 天的行标记为“YES” createddate
,并且该列Massive
必须为“NO”。这是我想要得到的一个例子。
我想尝试使用lead and lag
公式从最低到最高对日期进行排序,但不知道如何在 SQL 中应用它。我不确定是否有可能获得该专栏。
非常感谢任何帮助。非常感谢
编辑。
我使用了您建议的公式,并且有效!,再次感谢所有帮助:)
SELECT top 100
CF1.STRINGVALUE AS 'ID OT',
jis.created,
jis.resolutiondate,
IIF(CF3.STRINGVALUE like 'IDR-%','SI','NO') AS 'Massive',
cfo8.customvalue AS 'Solved',
CASE WHEN jis.resolutiondate IS NULL
THEN 'NO'
WHEN LAG(resolutiondate) OVER (PARTITION BY 'ID OT' ORDER BY resolutiondate) > DATEADD(DAY, -7, resolutiondate)
AND LAG(CF3.STRINGVALUE) OVER (PARTITION BY 'ID OT' ORDER BY resolutiondate) = 'NO'
AND LAG(cfo8.customvalue) OVER (PARTITION BY 'ID OT' ORDER BY resolutiondate) = 'NO'
THEN 'NO'
ELSE 'YES'
END AS SLA
FROM [DWH].[JIR].[jiraissue] jis
LEFT JOIN [DWH].[JIR].[customfieldvalue] CF1 ON (CF1.issue = jis.id AND CF1.CUSTOMFIELD = 10004)
LEFT JOIN [DWH].[JIR].[customfieldvalue] CF3 ON (CF3.issue = jis.id AND CF3.CUSTOMFIELD = 10032)
LEFT JOIN [DWH].[JIR].[customfieldvalue] CF14 ON (CF14.issue = jis.id AND CF14.CUSTOMFIELD = 10906)
LEFT JOIN [DWH].[JIR].customfieldoption cfo8 ON (CF14.customfield = cfo8.customfield AND CF14.stringvalue=CAST(cfo8.id AS CHAR))
解决方案
如果我正确地跟随你,你可以使用窗口函数:
select t.*,
case
when lag(resolutiondate) over(partition by key order by resolutiondate) > dateadd(day, -7, resolutiondate)
and lag(massive) over(partition by key order by resolutiondate) = 'NO'
then 'SI'
else 'NO'
end as sla
from mytable t
这会将当前行的日期与上一行的日期进行比较,并检查上一行的massive
状态。
也许您想检查当前行而不是前一行的状态 - 这有点简单:
select t.*,
case
when lag(resolutiondate) over(partition by key order by resolutiondate) > dateadd(day, -7, resolutiondate)
and massive = 'NO'
then 'SI'
else 'NO'
end as sla
from mytable t
推荐阅读
- javascript - 使用momentjs从范围内获取几个月和几周
- serverless-framework - 在无服务器中使用标签时 API Gateway 中缺少标签
- arduino - 优化转换函数(字符串到字节)
- javascript - 将数据绑定到角度复选框
- laravel - 创建具有多个一对多关系值的数据列表
- google-app-engine - Google Cloud 函数能否与 Appengine 共享数据存储?
- neural-network - 使用“咖啡时间”对 alexnet 测试进行基准测试
- nginx - 为什么 nginx 不测试所有可用位置?
- python - Visual Studio Code - 具有自动完成功能的 Python 交互式数据科学 REPL
- traefik - Traefik - 重定向不适用于没有斜杠的 PathPrefixStrip