SQLを使用して、1つのエントリと次のエントリの時間差に基づいて異なるデータエントリを選択しようとしています。これは一例で説明する方が簡単です:時間枠の外に別の行を選択
私のデータテーブルが
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分の違いがあるものだけを検索するようにします。
クエリが返す必要があります:これは、残念ながら動作していない
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
:
Part DateTime
123 12:00:00
456 12:10:23
789 12:12:13
123 12:14:32
私が使用しているコードは次のようです。誰かが私が間違ってやっていることを知っているか、代替のアプローチを提案できますか?
おかげ
あなたが私のアプローチを試したかどうかは疑問でした。あまりにも単純すぎたのですか? – MPelletier