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

Групирайте по стойности, които са в последователност

Можете да използвате техниката на Aketi Jyuuzou, наречена Tabibitosan тук:

SQL> create table mytable (id,chequeno)
  2  as
  3  select 1, 15 from dual union all
  4  select 2, 19 from dual union all
  5  select 3, 20 from dual union all
  6  select 4, 35 from dual union all
  7  select 5, 16 from dual
  8  /

Table created.

SQL> with tabibitosan as
  2  ( select chequeno
  3         , chequeno - row_number() over (order by chequeno) grp
  4      from mytable
  5  )
  6  select row_number() over (order by grp) "row"
  7       , min(chequeno) "from"
  8       , max(chequeno) "to"
  9    from tabibitosan
 10   group by grp
 11  /

       row       from         to
---------- ---------- ----------
         1         15         16
         2         19         20
         3         35         35

3 rows selected.

Поздрави,
Роб.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. listnagg функция?

  2. SQL не показва нулеви стойности в заявка не е равно?

  3. MySQL запитва примери с отговори

  4. Как да извика съхранена процедура в JDBC

  5. Oracle PL/SQL групово събиране с пример за изключения за запазване