SQL - Tabloda Kaçıncı Sırada Olduğunu Bulmak
-
üyeler tablosu var ve Puan sutunu var o tabloda. Kaç kişi arasından kaçıncı olduğunu gösteren bir t-sql kodu lazım arkadaşlar
teşekkürler
-
select * from uyeler
order by UYE_puan desc
yazdığından anladığım kadarıyla bu işini görür. Bu bilgi sana tüm üyeleri puanlarına göre sıralar.
Yazilimci tarafından 20/Haz/14 12:36 tarihinde düzenlenmiştir -
tek sql satırında halledilebilir diye düşünüyorum iki bilgide ama henuz yapamadım
-
eger yanlış anlamadıysam http://msdn.microsoft.com/en-us/library/ms186734.aspx row_number işini görecek.
-
şimdi kendi tabloma göre anlatim hocam
ogrenci adında bir tablom var ve no adında bir alanım var, ogrenci numaralarım var. yaptığım şey ogrenci numarasından küçük kaç tane daha öğrenci var. yüzde olarak adlandırdığım alan kendinden küçükleri toplam alanı ise toplam öğrenci sayısı.
select distinct (select count(no) from ogrenci where ogrenci.no < 10541029) as yuzde , (select count(no) from ogrenci ) as toplam from ogrenci
10541029 yazan kısıma puanı yazarsın.
-
Homer bunu yazdı
eger yanlış anlamadıysam http://msdn.microsoft.com/en-us/library/ms186734.aspx row_number işini görecek.
row_number() kullanınca tüm kayıtları çekmem gerekiyor buda performansı etkliyor
-
row number sıkıntı çıkarmaz,
SELECT us.Id FROM(SELECT ROW_NUMBER()OVER(ORDERBY id)ASRow, Id FROMUser) us WHERERow>100 and Row<200
gibi kullan -
HolyOne bunu yazdı
row number sıkıntı çıkarmaz,
SELECT us.Id FROM(SELECT ROW_NUMBER()OVER(ORDERBY id)ASRow, Id FROMUser) us WHERERow>100 and Row
gibi kullanaz kayıtta sorun olmaz hatta şuanki öyle çalışıyor ama 10-20 bin üye olduğunda ve sürekli kaçıncı olduklarını öğrenmek istediklerinde çatlar orası. Quiz uygulaması yapıyorum.
sql şuan böyle; select row_number() over (order by u.UyePuan DESC) as SatirSayisi,UyeID from Uye u
sonra dataview'a atıp UyeID'den where çakıyorum istediğim sonucu veriyor. Daha güzel bir yöntem olmalı muritler tek sql satırınca çözebiliriz bunu
-
Hocam bu da isini gorur
select rank() over(order by uyepuani desc) as siralama, uyeadi from tabloadi
-
hocam o fonksyon mysql için geçerli sanırım bizdekini belirtmeyi unutmuşum mssql
-
cemnet bunu yazdı
hocam o fonksyon mysql için geçerli sanırım bizdekini belirtmeyi unutmuşum mssql
Hocam eger benim sql komutunu diyorsan oradaki rank() fonksiyonu mssql 2005 te gecerli mssql 2014 te de gecerli.
dhmm tarafından 20/Haz/14 15:51 tarihinde düzenlenmiştir
