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

Oracle SQL заявка за групиране на последователни записи

Опитайте тази заявка:

SELECT line_no,
       amount,
       narration,
       SUM( x ) OVER ( ORDER BY line_no
                       ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 
       ) as calc_group
FROM (
  SELECT t.*,
         CASE lag( narration ) OVER (order by line_no ) 
         WHEN narration THEN 0
         ELSE 1 END x
  FROM test t

)
ORDER BY line_no

демо --> http://www.sqlfiddle.com/#!4/6d7aa /9




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка по време на изпълнение:-2147217887(80040e21) Системата не може да намери текст на съобщение за номер на съобщение 0x80040e21 във файла със съобщения за OraOLEDB

  2. Count(*) не работи правилно

  3. Oracle:защо не използва паралелно изпълнение?

  4. Маскиране на номера и nls_параметър

  5. Редовно, повтарящо се взаимодействие между оракул и интелигентен договор