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

групиране при промяна на статуса

Можете да направите това с метода за различен номер на ред. Разликата на row_number() -- с конкретни аргументи -- идентифицира групи. Останалото е просто агрегиране:

select status, min(time), max(time)
from (select t.*,
             (row_number() over (order by time) -
              row_number() over (partition by status order by time)
             ) as grp
      from mytable t
     ) t
group by status, grp;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server, еквивалентен на EXPLAIN на MySQL

  2. Могат ли SQLExpress 2005 и 2008 да бъдат инсталирани на една и съща машина без проблем?

  3. Внедряване на проект за база данни VS2010 - задачата SqlDeployTask се провали неочаквано, NullReferenceException

  4. Как да използвате шаблони в SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 16

  5. Преобразуване на произволна дата от сървърно време в потребителско време (за стандартно и лятно часово време)