• 13-07-2016, 10:42:12
    #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?
  • 16-07-2016, 14:29:19
    #2
    -- Tablonun CREATE komutu
    CREATE TABLE IF NOT EXISTS `tuhaf_tablo` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `okul` varchar(48) DEFAULT NULL,
      `ogrenci` varchar(48) DEFAULT NULL,
      `turkce` int(11) DEFAULT NULL,
      `matematik` int(11) DEFAULT NULL,
      `fen_bilgisi` int(11) DEFAULT NULL,
      `ilce` varchar(48) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
    
    INSERT INTO `tuhaf_tablo` (`id`, `okul`, `ogrenci`, `turkce`, `matematik`, `fen_bilgisi`, `ilce`) VALUES
    	(1, 'A OKULU', 'AHMET', 100, 85, 90, 'BEYLİKDÜZÜ');
    INSERT INTO `tuhaf_tablo` (`id`, `okul`, `ogrenci`, `turkce`, `matematik`, `fen_bilgisi`, `ilce`) VALUES
    	(2, 'A OKULU', 'MEHMET', 90, 50, 40, 'BEYLİKDÜZÜ');
    INSERT INTO `tuhaf_tablo` (`id`, `okul`, `ogrenci`, `turkce`, `matematik`, `fen_bilgisi`, `ilce`) VALUES
    	(3, 'B OKULU', 'ALİ', 20, 55, 85, 'AVCILAR');
    INSERT INTO `tuhaf_tablo` (`id`, `okul`, `ogrenci`, `turkce`, `matematik`, `fen_bilgisi`, `ilce`) VALUES
    	(4, 'B OKULU', 'VELİ', 10, 10, 50, 'AVCILAR');
    INSERT INTO `tuhaf_tablo` (`id`, `okul`, `ogrenci`, `turkce`, `matematik`, `fen_bilgisi`, `ilce`) VALUES
    	(5, 'C OKULU', 'MURAT', 100, 80, 75, 'AVCILAR');
    INSERT INTO `tuhaf_tablo` (`id`, `okul`, `ogrenci`, `turkce`, `matematik`, `fen_bilgisi`, `ilce`) VALUES
    	(6, 'C OKULU', 'ASLI', 50, 50, 75, 'AVCILAR');
    -- Türkçe notlarına göre yüksekten düşüğe sıralamak için
    SELECT AVG(turkce) turkce_ortalama, tuhaf_tablo.* FROM tuhaf_tablo GROUP BY tuhaf_tablo.okul ORDER BY 1 DESC
    
    -- Matematik notlarına göre yüksekten düşüğe sıralamak için
    SELECT AVG(matematik) matematik_ortalama, tuhaf_tablo.* FROM tuhaf_tablo GROUP BY tuhaf_tablo.okul ORDER BY 1 DESC
    
    -- Fen Bilgisi notlarına göre yüksekten düşüğe sıralamak için
    SELECT AVG(fen_bilgisi) fen_bilgisi_ortalama, tuhaf_tablo.* FROM tuhaf_tablo GROUP BY tuhaf_tablo.okul ORDER BY 1 DESC