由于我不擅长编写SQL查询以便寻求帮助。SQL查询查找每个工单的最后关闭seq_id
我有下面给出的数据集。
我需要编写一个查询找到
最后的查询只应与seq_id返回行的“为每个工作单上次关闭seq_id” = 24,28,32 enter image description here
由于我不擅长编写SQL查询以便寻求帮助。SQL查询查找每个工单的最后关闭seq_id
我有下面给出的数据集。
我需要编写一个查询找到
最后的查询只应与seq_id返回行的“为每个工作单上次关闭seq_id” = 24,28,32 enter image description here
假设你真的表示 “32”,而不是 “31”,然后row_number()
是典型的方法:
select t.*
from (select t.*,
row_number() over (partition by workorder_id order by seq_id desc) as seqnum
from t
where sts = 'Closed'
) t
where seqnum = 1;
谢谢戈登 – shivareddy
尝试这种情况:
SELECT sts
,workorder_id
,MAX(SEQ_ID) AS Last_Seq_ID
FROM mytablename
WHERE sts = 'Closed' -- Only include Closed records
GROUP BY sts, workorder_id
ORDER BY workorder_id -- This line is optional; it will sort your result
谢谢你serge – shivareddy
试试这个:
select workorder_id,max(seq_id) as seqid
from testtable
where sts='Closed'
group by workorder_id
谢谢你ranjana – shivareddy
这将工作的32
SELECT workorder_id
,max(seq_id)
from your_table
where sts="Closed"
group by workorder_id
为什么31呢? – jarlh
什么是SQL服务器版本 – Surendra
我的不好,它应该是32 – shivareddy