sql >> データベース >  >> RDS >> Oracle

このテーブルで重複する連続した値を見つけるにはどうすればよいですか?

    リードおよびラグ分析関数を使用します。

    create table t3 (d number, v number);
    insert into t3(d, v) values(1, 1);
    insert into t3(d, v) values(2, 2);
    insert into t3(d, v) values(3, 2);
    insert into t3(d, v) values(4, 3);
    insert into t3(d, v) values(5, 2);
    insert into t3(d, v) values(6, 3);
    insert into t3(d, v) values(7, 4);
    
    select d, v, case when v in (prev, next) then '*' end match, prev, next from (
      select
        d,
        v,
        lag(v, 1) over (order by d) prev,
        lead(v, 1) over (order by d) next
      from
        t3
    )
    order by
      d
    ;
    

    一致するネイバーは、一致列で*でマークされます



    1. MINまたはMAXにnull値を含めるにはどうすればよいですか?

    2. CONVERT()を使用してSQLServerで文字列を日付/時刻に変換する方法

    3. INSERT ... ON DUPLICATE KEY UPDATE with WHERE?

    4. SQLで列にランダムな数値を入力するにはどうすればよいですか?すべての行で同じ値を取得します