Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để tìm các giá trị liên tiếp trùng lặp trong bảng này?

Sử dụng các chức năng phân tích độ trễ và độ trễ.

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
;

Những người hàng xóm phù hợp được đánh dấu bằng * trong cột đối sánh,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về chuỗi và số trong Oracle Concatenate

  2. không thể tải oci8 -> Lỗi nghiêm trọng:Gọi đến hàm không xác định oci_connect ()

  3. Oracle hiển thị hơn 24 giờ

  4. ORA-12516, TNS:người nghe không thể tìm thấy trình xử lý có sẵn

  5. Oracle sql để đếm các trường hợp của các giá trị khác nhau trong một cột