sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan tilføjes sekvensnummer for grupper i en SQL-forespørgsel uden midlertidige tabeller

Eksempeldata

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

Forespørgsel

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

Output

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


  1. MySQL InnoDB frigiver ikke diskplads efter sletning af datarækker fra tabellen

  2. hvordan laver man en funktion for at returnere rækketype fra en tabel i pl/sql?

  3. Træk to rækkers værdier fra i samme kolonne ved hjælp af Mysql-gruppe efter ID

  4. Sådan returneres en liste over understøttede sprog i Oracle