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

Temukan min dan maks untuk himpunan bagian dari baris berurutan - celah dan pulau

Anda ingin menemukan grup berturut-turut dari baris yang sama dan kemudian agregasi. Saya suka perbedaan pendekatan nomor baris:

select name, act, min(startt) as startt, max(endd) as endd
from (select i.*,
             row_number() over (partition by name, act order by rn) as seqnum_na,
             row_number() over (partition by name order by rn) as seqnum_n
      from input i
     ) i
group by (seqnum_n - seqnum_na), name, act;

Anda dapat melihat cara kerjanya dengan melihat apa yang dilakukan subkueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara terbaik untuk mengontrol versi prosedur tersimpan server SQL saya?

  2. dapatkan string yang dipisahkan koma dari baris

  3. Di tsql, apakah Sisipkan dengan pernyataan Pilih aman dalam hal konkurensi?

  4. Catatan acak dari tabel database (T-SQL)

  5. Bagaimana cara memasukkan hasil FOR AUTO XML ke dalam tabel?