Pemrograman, Teknologi

Mengubah Baris Menjadi Kolom Pada Query SQL

Posted by Andika Saputra on 6 Oktober 2018

Terkadang dalam membuat query sql kita ingin mengubah suatu baris record menjadi kolom, yang mungkin akan mengurangi jumlah request dari bahasa pemrograman ke database. Misalnya saja dalam membuat sebuah query untuk menghitung jumlah soal pada masing masing level soal. Contohnya kita memiliki sebuah tabel berisi data soal seperti di bawah ini, dan kita ingin mengetahui jumlah soal dari tiap – tiap level. Dan level di sini menggunakan tipe data enum, yang sangat jarang kemungkinannya akan berubah – ubah.

+----+-------------------------------------------------+--------+
| id | soal                                            | level  |
+----+-------------------------------------------------+--------+
|  1 | Siapakah nama presiden pertama Indonesia?       | mudah  |
|  2 | Siapakah nama wakil presiden pertama Indonesia? | mudah  |
|  3 | Berapa hasil dari 1 x 0.5?                      | sedang |
|  4 | Apa nama latin dari Bunga sepatu                | sulit  |
|  5 | Berapakah jumlah sendi manusia?                 | sedang |
+----+-------------------------------------------------+--------+

Menggunakan GROUP BY

Sebenarnya bisa menggunakan cara GROUP BY untuk mengetahui jumlah soal dari tiap tiap levelnya, dengan menggunakan query seperti di bawah ini.

Akan tetapi, dengan menggunakan cara seperti itu, penyajian datanya akan menjadi 3 buah record / baris data yang tentu saja harus dilakukan perulangan untuk mengambil setiap datanya.

+--------+-----+
| level  | jml |
+--------+-----+
| mudah  |   2 |
| sedang |   2 |
| sulit  |   1 |
+--------+-----+

Menggunakan SUM

Nah inilah cara yang akan kita gunakan. Dengan cara ini, kita dapat mengubah orientasi tabel penyajian datanya. Kita bisa merubah barisnya menjadi kolom. Nama kolom yang sebelumnya adalah level dan jml, akan kita ubah menjadi mudah, sedang, dan sulit, dan akan menghasilkan 1 buah record / baris data yang berisi jumlah soal dari tiap – tiap kolom (level). Berikut adalah penggunaan query nya.

Dengan cara di atas, kita akan mengecek setiap data, jika levelnya adalah ‘mudah’, maka akan kita hitung satu, dan dijumlahkan, dan dijadikan kolom mudah. Begitu pula untuk bagian sedang dan sulit. Dan akan menghasilkan hasil seperti di bawah ini.

+-------+--------+-------+
| mudah | sedang | sulit |
+-------+--------+-------+
|     2 |      2 |     1 |
+-------+--------+-------+

Dengan menggunakan query seperti ini, tugas dari bahasa pemrograman yang berinteraksi dengan database menjadi lebih sederhana dan mudah. Tidak perlu lagi untuk melakukan perulangan dan mengambil setiap record / baris data yang diberikan oleh database. Karena database telah memberikan data dalam 1 record / baris data.

Jenis query ini juga biasanya digunakan untuk mengambil data preferences sebuah sistem / aplikasi, seperti misalnya konfigurasi / preferences email.

Tags : , , ,