我正嘗試使用SQL根據一個條目和下一個條目之間的時間差異來選擇不同的數據條目。它更容易用一個例子來解釋:在時間範圍之外選擇不同的行
我的數據表有
Part DateTime
123 12:00:00
123 12:00:05
123 12:00:06
456 12:10:23
789 12:12:13
123 12:14:32
我想與限制,只要返回所有行,如果有使用相同的「部分」號的多個條目我會喜歡只檢索那些至少5分鐘的差異。
查詢應返回:
Part DateTime
123 12:00:00
456 12:10:23
789 12:12:13
123 12:14:32
我正在使用的代碼如下:
SELECT data1.*, to_char(data1.scan_time, 'yyyymmdd hh24:mi:ss')
FROM data data1
where exists
(
select *
from data data2
where data1.part_serial_number = data2.part_serial_number AND
data2.scan_time + 5/1440 >= data1.scan_time
and data2.info is null
)
order by to_char(data1.scan_time, 'yyyymmdd hh24:mi:ss'), data1.part_serial_number
這不是遺憾的是工作。有誰知道我做錯了什麼或可以建議一種替代方法?
由於
我想知道你是否試過我的方法。這是否過於簡單? – MPelletier