Oracle
 sql >> база данни >  >> RDS >> Oracle

вземете интервали с непроменлива стойност от поредица от числа

Искате да идентифицирате групи от съседни стойности. Един от методите е да използвате lag() за намиране на началото на поредицата, след това кумулативна сума за идентифициране на групите.

Друг метод е разликата в номера на реда:

select value, min(id) as from_id, max(id) as to_id
from (select t.*,
             (row_number() over (order by id) -
              row_number() over (partition by val order by id
             ) as grp
      from table t
     ) t
group by grp, value;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-04021:възникна изчакване при изчакване за заключване на обекта

  2. PL/SQL настройка на производителността за LIKE '%...%' заместващи заявки

  3. Получаване на изходни данни RefCursor и VarChar от една и съща съхранена процедура

  4. ORA-30076:невалидно поле за извлечение за източник на извлечение

  5. SQL Избор на дати с максимална продажба за всеки отдел