次のようなPostgresテーブルにいくつかのデータがあります。
1 apple datetime1
2 orange datetime2
3 apple datetime3
4 orange datetime4
5 apple datetime5
6 orange datetime6
.
日時は常に昇順であり、ほとんどの場合、リンゴの行が最初に挿入され、オレンジ色の行が 2 番目に挿入されますが、いくつかの例外をキャッチして排除する必要があります。
実際に必要なのは、リンゴとオレンジのみをペアにする Postgres クエリです。
1 apple datetime1 2 orange datetime2
3 apple datetime3 4 orange datetime4
5 apple datetime5 6 orange datetime6
リンゴは他のリンゴと決して組み合わせてはならず、オレンジは他のオレンジと組み合わせてはいけません.
いくつかの条件があります:
1) 新しく生成された行では、apple が常に 1 番目で、orange が 2 番目になります。
2) リンゴとオレンジの行を常に最も近い日時とペアにし、他の行を無視します。
たとえば、元のデータが次のようになっているとします。
1 apple datetime1
2 apple datetime2
3 orange datetime3
4 orange datetime4
ペア
2 apple datetime2 3 orange datetime3
行を無視する
1 apple datetime1
4 orange datetime4
Postgresでこれを行う方法はありますか?