Mengendalikan Urutan Keluaran dengan Penggabungan – MySQL Dasar #81

Tutorial MySQL Dasar ini merupakan sesi pembelajaran terakhir, Anda bisa melihat rangkuman daftar pembelajarannya pada halaman / link – link dibawah ini : 


Selanjutnya pada kesempatan ini Saya akan menjelaskan tentang bagaimana cara mengendalikan urutan keluaran dalam penggabungan. Disini kita akan mencoba mengurutkan keluaran query menggunakan karakteristik keluaran yang tidak bisa ditetapkan menggunakan ORDER BY.

 Sebagai contoh, Ketika misalnya ingin mengurutkan sehimpunan baris berdasrkan subgrup, menempatkan di awal grup-grup dengan baris – baris paling banyak dan menempatkan di akhir grup dengan baris paling sedikit. Perhatikan query pada tabel daftar supir dibawah ini :
MariaDB [root93]> SELECT * FROM daftar_supir ORDER BY id_rek;
+--------+-------+----------------+------+
| id_rek | nama  | tanggal_travel | km   |
+--------+-------+----------------+------+
|      1 | Susi  | 2014-11-29     |  391 |
|      2 | Henry | 2014-11-29     |  300 |
|      3 | Henri | 2014-11-27     |  367 |
|      4 | Ben   | 2014-11-29     |  131 |
|      5 | Henry | 2014-11-26     |  278 |
|      6 | Susi  | 2014-12-02     |  502 |
|      7 | Henry | 2014-12-01     |  273 |
|      8 | Ben   | 2014-12-02     |  837 |
|      9 | Henry | 2014-11-30     |  574 |
|     10 | Henri | 2014-11-26     |  380 |
+--------+-------+----------------+------+
10 rows in set (0.019 sec)
Query diatas mengurutkan hasil berdasarkan kolom id_rek yang ada pada tiap baris, tetapi bagiamana selanjutny ajika misal kita melakukan pengurutan berdasarkan nilai kesimpulan yang tidak terdapat dalam baris. Misalnya disini kita ingin menampilkan rekaman – rekaman setiap supir berdasarkan tanggal, tetapi ingin menampatkan di awal supir berdasarkan supir yang paling sering berkendara maka mungkin Anda memperlukan tabel temporari
MariaDB [root93]> CREATE TABLE tmp_supir
    -> SELECT nama, SUM(km) AS km_berkendara
    -> FROM daftar_supir
    -> GROUP by nama;
Query OK, 4 rows affected (0.414 sec)
Records: 4  Duplicates: 0  Warnings: 0
Selanjutnya query tersebut dapat menghasilkan nilai – nilai yang bisa menempatkan berdasarkan urutan yang diinginkan seperti berikut :
MariaDB [root93]> SELECT * FROM tmp_supir
    -> ORDER by km_berkendara DESC;
+-------+---------------+
| nama  | km_berkendara |
+-------+---------------+
| Henry |          1425 |
| Ben   |           968 |
| Susi  |           893 |
| Henri |           747 |
+-------+---------------+
4 rows in set (0.001 sec)
Selanjutnya kita akan mencoba untuk menggunakan nilai – nilai nama untuk menggabungkan tabel kesimpulan dengan tabel daftar supir, selanjutnya alias tabel km_berkendara digunakan untuk mengurutkan hasil.
MariaDB [root93]> SELECT tmp_supir.km_berkendara, daftar_supir.*
    -> FROM daftar_supir, tmp_supir
    -> WHERE daftar_supir.nama = tmp_supir.nama
    -> ORDER by tmp_supir.km_berkendara DESC, daftar_supir.tanggal_travel;
+---------------+--------+-------+----------------+------+
| km_berkendara | id_rek | nama  | tanggal_travel | km   |
+---------------+--------+-------+----------------+------+
|          1425 |      5 | Henry | 2014-11-26     |  278 |
|          1425 |      2 | Henry | 2014-11-29     |  300 |
|          1425 |      9 | Henry | 2014-11-30     |  574 |
|          1425 |      7 | Henry | 2014-12-01     |  273 |
|           968 |      4 | Ben   | 2014-11-29     |  131 |
|           968 |      8 | Ben   | 2014-12-02     |  837 |
|           893 |      1 | Susi  | 2014-11-29     |  391 |
|           893 |      6 | Susi  | 2014-12-02     |  502 |
|           747 |     10 | Henri | 2014-11-26     |  380 |
|           747 |      3 | Henri | 2014-11-27     |  367 |
+---------------+--------+-------+----------------+------+
10 rows in set (0.015 sec)

0 Response to "Mengendalikan Urutan Keluaran dengan Penggabungan – MySQL Dasar #81"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin