Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Query untuk mengelompokkan item berdasarkan waktu, tetapi hanya jika saling berdekatan?

Ini disebut "masalah pulau" dan saya melihat ini sebagai solusi (kredit Itzik Ben Gan)

select  tool_number,
        min(time) 'in',
        max(time) 'out',
        count(*)
from    (
    select  tool_number,
            time,
            ROW_NUMBER() OVER (ORDER BY time) - ROW_NUMBER() OVER (PARTITION BY Tool_Number ORDER BY time) AS Grp
    from    #temp
    ) as a
group by grp, tool_number
order by min(time)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah setiap Tabel Pengguna memiliki Indeks Berkelompok?

  2. Menyinkronkan data antara dua database yang berbeda

  3. Lakukan while loop di SQL Server 2008

  4. OPENROWSET tidak menerima variabel untuk argumennya (SQL Server)

  5. SQL - urutan dengan urutan daftar