• 12-07-2016, 14:21:25
    #1
    Türkçe , Matematik ve Fen Bilgisinden öğrencilerin aldıkları notlar var.

    Okul - Öğrenci - Türkçe - Matematik - Fen Bilgisi - İlçe
    A Okulu Ahmet 100 85 90 Beylikdüzü
    A Okulu Mehmet 90 50 40 Beylikdüzü
    B Okulu Ali 20 55 85 Avcılar
    B Okulu Veli 10 10 50 Avcılar
    C Okulu Murat 100 80 75 Avcılar
    C Okulu Aslı 50 50 75 Avcılar

    okulların ders bazındaki ortalamalarını çıkarıp bu ortalamalara göre okulun kaçıncı sırada olduğunu hesaplatmak istiyorum.

    mesela B okulunun türkçe ortalaması 15, C okulunun 75, A okulunun 95. Bu ortalamalara göre türkçe dersinde okullar kaçıncı sırada bunu hesaplatmak istiyorum.1. A okulu, 2. C okulu, 3. B okulu olarak sonuç döndürmeli. Nasıl okulları ders ortalamasına göre sıralatıp, sıra değerini bulabilirim?

    Tabi bu okullar örnek okullar 1000 kadar okul var gerçekte.
  • 12-07-2016, 15:15:11
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Karaman adlı üyeden alıntı: mesajı görüntüle
    Türkçe , Matematik ve Fen Bilgisinden öğrencilerin aldıkları notlar var.

    Okul - Öğrenci - Türkçe - Matematik - Fen Bilgisi - İlçe
    A Okulu Ahmet 100 85 90 Beylikdüzü
    A Okulu Mehmet 90 50 40 Beylikdüzü
    B Okulu Ali 20 55 85 Avcılar
    B Okulu Veli 10 10 50 Avcılar
    C Okulu Murat 100 80 75 Avcılar
    C Okulu Aslı 50 50 75 Avcılar

    okulların ders bazındaki ortalamalarını çıkarıp bu ortalamalara göre okulun kaçıncı sırada olduğunu hesaplatmak istiyorum.

    mesela B okulunun türkçe ortalaması 15, C okulunun 75, A okulunun 95. Bu ortalamalara göre türkçe dersinde okullar kaçıncı sırada bunu hesaplatmak istiyorum.1. A okulu, 2. C okulu, 3. B okulu olarak sonuç döndürmeli. Nasıl okulları ders ortalamasına göre sıralatıp, sıra değerini bulabilirim?

    Tabi bu okullar örnek okullar 1000 kadar okul var gerçekte.
    SELECT 
    	Ortalama.*, (@sira:=@sira+1) as Sira
    FROM 
    	(SELECT Okul, AVG(Turkce) as Turkce, AVG(Matematik) as Matematik, AVG(FenBilgisi) as FenBilgisi, Ilce FROM notlar Group By Okul ORDER BY Turkce DESC) as Ortalama, 
    	(SELECT @sira:=0) as Siralama
    Order By Sira ASC;
  • 12-07-2016, 16:17:51
    #3
    PROOYUN adlı üyeden alıntı: mesajı görüntüle
    SELECT 
    	Ortalama.*, (@sira:=@sira+1) as Sira
    FROM 
    	(SELECT Okul, AVG(Turkce) as Turkce, AVG(Matematik) as Matematik, AVG(FenBilgisi) as FenBilgisi, Ilce FROM notlar Group By Okul ORDER BY Turkce DESC) as Ortalama, 
    	(SELECT @sira:=0) as Siralama
    Order By Sira ASC;
    Cevabınız için teşekkür ederim hocam.Sizin kodunuzu kendi veritabanı bilgilerine göre uyarladım.

    SELECT  
        Ortalama.*, (@sira:=@sira+1) as Sira 
    FROM  
        (SELECT AVG(turkce) as turkce, AVG(matematik) as matematik, AVG(fenvetek) as fenvetek FROM veri Group By kurum_kodu ORDER BY turkce DESC) as Ortalama,  
        (SELECT @sira:=0) as Siralama 
    Order By Sira ASC;
    ancak syntax hatası veriyor.
  • 12-07-2016, 16:24:20
    #4
    Karaman adlı üyeden alıntı: mesajı görüntüle
    Cevabınız için teşekkür ederim hocam.Sizin kodunuzu kendi veritabanı bilgilerine göre uyarladım.

    SELECT  
        Ortalama.*, (@sira:=@sira+1) as Sira 
    FROM  
        (SELECT AVG(turkce) as turkce, AVG(matematik) as matematik, AVG(fenvetek) as fenvetek FROM veri Group By kurum_kodu ORDER BY turkce DESC) as Ortalama,  
        (SELECT @sira:=0) as Siralama 
    Order By Sira ASC;
    ancak syntax hatası veriyor.




    MySQL.
  • 13-07-2016, 00:30:36
    #5
    PROOYUN adlı üyeden alıntı: mesajı görüntüle




    MySQL.
    Bu sorguyu number_row ile yapmak mümkün mü hocam?
  • 13-07-2016, 00:36:52
    #6
    Karaman adlı üyeden alıntı: mesajı görüntüle
    Bu sorguyu number_row ile yapmak mümkün mü hocam?
    number_row adında bir function MySQL 'de bulunmuyor. Siz hangi dili kullanıyorsunuz ?
  • 13-07-2016, 08:24:14
    #7
    PROOYUN adlı üyeden alıntı: mesajı görüntüle
    number_row adında bir function MySQL 'de bulunmuyor. Siz hangi dili kullanıyorsunuz ?
    Mssql kullanıyorum hocam. Fonksiyon buymuş bu arada ROW_NUMBER