簡體   English   中英

Oracle SQL 查詢以獲取基於記錄的最小和最小日期

[英]Oracle SQL Query to get min and min date based the records

輸入:

date1, id, device1, device2
1jul,  1, enable, disable
2jul, 1, enable , disable
3jul, 1, enable, disable
4jul, 1, unknown, enable
5jul, 1, enable, disable
6jul, 1, enable, disable

如何獲得低於輸出:

id, device1,device2, mindate, maxdate
1, enable, disable, 1jul, 3jul
1, unknown, enable, 4jul, 4jul
1, enable, disable, 5th, 6th

這是一種間隙和島嶼問題。 在這種情況下,行號的差異可能是最簡單的解決方案:

select id, device1, device2, min(date1), max(date1)
from (select t.*,
             row_number() over (partition by id, device1, device2 order by date1) as seqnum_2,
             row_number() over (partition by idorder by date1) as seqnum
      from t
     ) t
group by id, device1, device2, (seqnum - seqnum_2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM