2010-06-15 19 views
16

Döndürülmüş satırları sıralamanın mümkün olup olmadığını merak ediyordum. Herhangi bir sütun içeriğine göre değil, sadece bir sıralı tamsayı indeksi elde edilir. Örneğin.SQL'de döndürülen satırlar nasıl numaralandırılır?

select ?, count(*) as usercount from users group by age 

çizgisinde bir şey döndürür:

1 12 
2 78 
3  4 
4 42 

o https://data.stackexchange.com/

+2

Hangi DBMS'yi kullanıyorsunuz? – BenV

+0

@benv: http://odata.stackexchange.com/ – SilentGhost

+0

@SilentGhost için, ilgili etiketler [tag: tsql] ve [tag: dataexplorer] olabilir. Ama şimdi mysql ve oracle cevapları var, onu değiştirmek için biraz geç. –

cevap

13

denemede içindir: Bunu yapacağını nasıl

SELECT 
    ROW_NUMBER() OVER(ORDER BY age) AS RowNumber 
     ,count(*) as usercount 
    from users 
    group by age 
1

veritabanı sunucusuna bağlıdır.

select row_number() over (order by age) 
,  age 
,  count(*) as usercount 
from users 
group by 
     age 
order by 
     age 

Ama istemci tarafı satır numaraları kullanmak genellikle daha kolay ve daha hızlı: SQL Server, sen row_number() kullanabilirsiniz. MySQL için SQL sunucusuna

SELECT 
    ROW_NUMBER() OVER (ORDER BY columnNAME) AS 'RowNumber',count(*) as usercount 
    FROM users 
+0

'yaşına göre bölüm ', sayının her bir yaş için dinlenmesine neden olur ve sorgu, yaşa göre gruplandırılır, bu nedenle satır numaranız her satır için 1 olur. –

+0

@KM: – Andomar

1

kullanım: Oracle ise

SELECT @row := @row + 1 as row FROM anytable a, (SELECT @row := 0) r 
+0

cevabında düzenlenmiş bağlantı için teşekkürler – SilentGhost

İlgili konular