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

Bagaimana cara menambahkan nomor urut untuk grup dalam kueri SQL tanpa tabel temp

Contoh data

create table sometable([group] varchar(10), id int, somedata int)
insert sometable select 'Horses', 9, 11
insert sometable select 'chickens', 19, 121
insert sometable select 'Horses', 29, 123
insert sometable select 'chickens', 49, 124
insert sometable select 'Cows', 98, 1
insert sometable select 'Horses', 99, 2

Kueri

select
    Record = ROW_NUMBER() over (order by [Group], id),
    [Group],
    GroupSequence = DENSE_RANK() over (order by [Group])
from sometable

Keluaran

Record               Group      GroupSequence
-------------------- ---------- --------------------
1                    chickens   1
2                    chickens   1
3                    Cows       2
4                    Horses     3
5                    Horses     3
6                    Horses     3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bentrokan tipe operan:int tidak sesuai dengan tanggal + Pernyataan INSERT bertentangan dengan batasan FOREIGN KEY

  2. Waktu kueri habis saat dijalankan dari web, tetapi sangat cepat saat dijalankan dari SSMS

  3. Linq memilih rentang catatan

  4. Tambahkan referensi dll pihak ketiga di komponen skrip ssis

  5. Bisakah kueri yang membaca variabel tabel menghasilkan rencana eksekusi paralel di SQL Server 2008?