由於我不擅長編寫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