[英]Oracle - sql - date difference - as per column value
我有下表,
ID | 開始日期 | 階段 |
---|---|---|
56 | 07-JUN-21 03.13.44.4490000 | 初期 |
77 | 08-JUN-21 06.28.14.0000000 | 初期 |
77 | 08-JUN-21 07.28.14.0000000 | 中間階段 |
77 | 09-JUN-21 06.28.14.0000000 | 最后階段 |
必填 output:
根據 ID 需要找到達到最終階段的總天數。 如果 ID 沒有 Final_Stage,則結果將為“0”。 如果某個 ID 有可用的 Final Stage,則需要將 Final_Stage 和 Initial_Stage 之間的天數相差“
ID | Start_to_Final_Stage_Days |
---|---|
56 | 0 |
77 | 1個 |
您可以在條件中使用MIN [ IMUM ] 聚合,考慮到Final_Stage
在階段中按字母順序排列在頂部以及EXTRACT()
function 以便將間隔天轉換為秒到integer例如
SELECT ID,
DECODE( MIN(stage), 'Final_Stage',
EXTRACT(DAY FROM MIN( CASE WHEN stage = 'Final_Stage' THEN start_date END ) -
MIN( CASE WHEN stage = 'Initial_Stage' THEN start_date END) ),0)
AS "Start_to_Final_Stage_Days"
FROM t
GROUP BY ID
ORDER BY ID;
ID | Start_to_Final_Stage_Days |
---|---|
56 | 0 |
77 | 1個 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.