Author Topic: Query untuk mencari siswa nilai tertinggi per sekolah  (Read 3241 times)

0 Members and 1 Guest are viewing this topic.

Offline Subiyantoro

  • Senior Member
  • *
  • Posts: 594
  • Selesaikan codingmu dulu baru pake FB
Query untuk mencari siswa nilai tertinggi per sekolah
« on: September 26, 2012, 11:31:32 PM »
Kawan Foxer,
Begini saya udah mumet nyari query yang tepat untuk mencari nilai tertinggi dari tabel siswa sekabupaten, mungkin teman-teman bisa bantu. Untuk datanya berikut :
Quote
CREATE TABLE IF NOT EXISTS `daftarsiswa` (
  `namasiswa` varchar(50) default NULL,
  `nmsekul` varchar(70) default NULL,
  `nilai` decimal(10,3) default NULL,
  KEY `nmsekul` (`nmsekul`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

# Dumping data for table test.daftarsiswa: ~0 rows (approximately)
/*!40000 ALTER TABLE `daftarsiswa` DISABLE KEYS */;
INSERT INTO `daftarsiswa` (`namasiswa`, `nmsekul`, `nilai`) VALUES
   ('FERRANI DELTA AGUSTIN', 'A', 29.100),
   ('DHIMAS WAHYU SRI KRESNA (*)', 'C', 29.050),
   ('SHINDY AYU ANGGRAINI', 'A', 28.900),
   ('DHIVA APRILIYANA ANANDA', 'A', 28.850),
   ('CINTYA FEBRIARIZKA', 'B', 28.800),
   ('MERIN HARUM SARI', 'C', 28.750),
   ('DIANA LAILY TOMI\'UL AFWA (*)', 'D', 28.700),
   ('SUKMAWATI WARDANI', 'C', 28.700),
   ('PUTRI LARASWATI', 'B', 26.000),
   ('FAVIAN FAIRUZ XAVIER (*)', 'A', 28.650),
   ('NURUL ANNIYAH', 'C', 28.650),
   ('RIZKY MAULANA EKA SAPUTRA', 'D', 28.600),
   ('NIKEN', 'D', 28.550),
   ('ALIEF FIAN SYACA (M)', 'A', 28.500),
   ('RIFDA AWALIYAHNISA', 'B', 28.500),
   ('ANNISA LYDYA RAMADHANI', 'B', 28.500),
   ('FIRDAUS MASGALIH YUDISTIRA', 'B', 28.500),
   ('ARIF DWI EURO TULHUDA', 'C', 28.500),
   ('SAHILATUL MARDLIYYAH', 'B', 27.000),
   ('KURROTU AINI', 'A', 28.450),
   ('Rr. AMALIA PUTRI HERUROSO', 'B', 27.000),
   ('AFIFA PUTRI CAHYANI (M)', 'B', 28.400),
   ('NANI SAFITRI (M)', 'A', 29.150);

Output yang saya inginkan adalah mencari maximal 3 siswa dengan nilai tertinggi dari tiap sekolah

Offline davidmustakim

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 14.053
  • Awas ya...
Re: Query untuk mencari siswa nilai tertinggi per sekolah
« Reply #1 on: September 26, 2012, 11:45:22 PM »
maksudnya berurutan rankingnya 1 s/d 3 tanpa peduli dari sekolah mana?

Offline Subiyantoro

  • Senior Member
  • *
  • Posts: 594
  • Selesaikan codingmu dulu baru pake FB
Re: Query untuk mencari siswa nilai tertinggi per sekolah
« Reply #2 on: September 26, 2012, 11:49:31 PM »
rangking berurutan 1 s/d 3 ditiap sekolah

Apa bisa hanya dalam 1 query ?
« Last Edit: September 26, 2012, 11:51:25 PM by Subiyantoro »

Offline davidmustakim

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 14.053
  • Awas ya...
Re: Query untuk mencari siswa nilai tertinggi per sekolah
« Reply #3 on: September 26, 2012, 11:57:00 PM »
biar yang muda aja dulu nyari deh, kalo nggak ya besok pagi bangun baru ada, soalnya lagi ada hal lain deadline nih, jadi TUMPUL heheheh, apalagi kalo minta sebaris doang, tapi itu mah kayaknya - mikir2, lebih mudah dipikirin scan/gabung cursor hasil query aja dulu

Offline imanmis

  • Hero Member
  • *
  • Posts: 3.735
  • Newbie
Re: Query untuk mencari siswa nilai tertinggi per sekolah
« Reply #4 on: September 27, 2012, 06:24:03 AM »
biar yang muda aja dulu nyari deh, kalo nggak ya besok pagi bangun baru ada, soalnya lagi ada hal lain deadline nih, jadi TUMPUL heheheh, apalagi kalo minta sebaris doang, tapi itu mah kayaknya - mikir2, lebih mudah dipikirin scan/gabung cursor hasil query aja dulu
IDEM ..... sambil nyimak plus tambah point postingan  :icon_biggrin:

Offline hendrisoni

  • Junior Member
  • *
  • Posts: 190
    • http://exabita.com
Re: Query untuk mencari siswa nilai tertinggi per sekolah
« Reply #5 on: September 27, 2012, 06:40:55 AM »
Always Learn
http://exabita.com

Offline Subiyantoro

  • Senior Member
  • *
  • Posts: 594
  • Selesaikan codingmu dulu baru pake FB
Re: Query untuk mencari siswa nilai tertinggi per sekolah
« Reply #6 on: September 27, 2012, 09:55:26 AM »
Masalah sudah terselesaikan atas bantuan dari anggota KPFI (facebook) , querynya berikut :

Quote
SELECT  @row_num := IF(@prev_value=o.nmsekul,@row_num+1,1) AS RowNumber
       ,o.nmsekul
       ,o.namasiswa
       ,o.nilai
       ,@prev_value := o.nmsekul
  FROM daftarsiswa o,
      (SELECT @row_num := 1) x,
      (SELECT @prev_value := '') y
  ORDER BY o.nmsekul, o.nilai DESC

memang hasilnya ditampilkan semua cuman bisa disortir berdasarkan no urutan

Offline davidmustakim

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 14.053
  • Awas ya...
Re: Query untuk mencari siswa nilai tertinggi per sekolah
« Reply #7 on: September 27, 2012, 02:10:47 PM »
Masalah sudah terselesaikan atas bantuan dari anggota KPFI (facebook) , querynya berikut :

Quote
SELECT  @row_num := IF(@prev_value=o.nmsekul,@row_num+1,1) AS RowNumber
       ,o.nmsekul
       ,o.namasiswa
       ,o.nilai
       ,@prev_value := o.nmsekul
  FROM daftarsiswa o,
      (SELECT @row_num := 1) x,
      (SELECT @prev_value := '') y
  ORDER BY o.nmsekul, o.nilai DESC

memang hasilnya ditampilkan semua cuman bisa disortir berdasarkan no urutan
loh, emang masih rame ya tempat kongkow2 disitu, ... hmmm kirain udah bubar digrebeg polwan kemaren