テーブルの列で連続したペアを取得する方法を見つけるのに苦労していますが、これまでのところ失敗しています。より具体的に説明するために、例を挙げましょう。
次のように、char の 1 列 (col1) を持つテーブル (t1) があるとします。
col1
------
a
a
a
c
e
a
g
i
私が取得したいのは、 のような連続したペアです
(a,a) (a,a) (a,c) (c,e) (e,a) (a g) (g,i)
。たとえば、次のように文字列の列 (col2) を持つ新しいテーブル (t2) を作成します。
col2
------
a,a
a,a
a,c
c,e
e,a
a,g
g,i
(同じ値のペアを除外できれば(例:(a、a))、それがより良いでしょう)
lag() のような分析関数がなく、pl/sql を使用できないと仮定してください。基本的なSQLステートメントでこの問題を解決する必要があります。
次のように、この種の問題を解決するための非常に単純なSQLクエリがあります。
select t1.col as col1, min(t2.col) as col2
from table1 t1 inner join table1 t2 on t2.col > t1.col
group by t1.col
order by t1.col
ただし、重複がないと仮定すると、このクエリは機能します。
助けてください。コメントやアイデアは非常にありがたいです。