Menggunakan ORDER BY Untuk Mengurutkan Query - MySQL Dasar #33

Keluaran dari sebuah query belum tentu seperti yang Anda inginkan. Anda bisa menambahkan kalusa ORDE BY pada query.

Daftar isi : Pengurutan Hasil Query 

Query ini menghasilkan pengurutan satu kolom berdasarakan nama supir

MariaDB [root93]> SELECT * FROM daftar_supir ORDER by nama;
+--------+-------+----------------+------+
| id_rek | nama  | tanggal_travel | km   |
+--------+-------+----------------+------+
|      4 | Ben   | 2014-11-29     |  131 |
|      8 | Ben   | 2014-12-02     |  837 |
|      3 | Henri | 2014-11-27     |  367 |
|      2 | Henry | 2014-11-29     |  300 |
|      5 | Henry | 2014-11-26     |  278 |
|      7 | Henry | 2014-12-01     |  273 |
|      9 | Henry | 2014-11-30     |  574 |
|      1 | Susi  | 2014-11-29     |  391 |
|      6 | Susi  | 2014-12-02     |  502 |
+--------+-------+----------------+------+
9 rows in set (0.19 sec)

Kebalikan dari pengurutan menaik adalah pengurutan, yang ditetapkan dengan menambah DESC setelah nama kolom yang ingin diurutkan.

MariaDB [root93]> SELECT * FROM daftar_supir ORDER by nama DESC;
+--------+-------+----------------+------+
| id_rek | nama  | tanggal_travel | km   |
+--------+-------+----------------+------+
|      1 | Susi  | 2014-11-29     |  391 |
|      6 | Susi  | 2014-12-02     |  502 |
|      2 | Henry | 2014-11-29     |  300 |
|      5 | Henry | 2014-11-26     |  278 |
|      7 | Henry | 2014-12-01     |  273 |
|      9 | Henry | 2014-11-30     |  574 |
|      3 | Henri | 2014-11-27     |  367 |
|      4 | Ben   | 2014-11-29     |  131 |
|      8 | Ben   | 2014-12-02     |  837 |
+--------+-------+----------------+------+
9 rows in set (0.00 sec)

Untuk lebih mengendalikan urutan yang dihasilkan, Anda bisamenetapkan pengurutan multi kolom dengan mencantumkan tiap kolom yang akan diurutkan, dipisahkan dengan koma. Query berikut mengurutkan dengan tatanan menaik berdasarkan nama dan tanggal_travel :

MariaDB [root93]> SELECT * FROM daftar_supir ORDER by nama, tanggal_travel;
+--------+-------+----------------+------+
| id_rek | nama  | tanggal_travel | km   |
+--------+-------+----------------+------+
|      4 | Ben   | 2014-11-29     |  131 |
|      8 | Ben   | 2014-12-02     |  837 |
|      3 | Henri | 2014-11-27     |  367 |
|      5 | Henry | 2014-11-26     |  278 |
|      2 | Henry | 2014-11-29     |  300 |
|      9 | Henry | 2014-11-30     |  574 |
|      7 | Henry | 2014-12-01     |  273 |
|      1 | Susi  | 2014-11-29     |  391 |
|      6 | Susi  | 2014-12-02     |  502 |
+--------+-------+----------------+------+
9 rows in set (0.00 sec)

Pengurutan multi-kolom dapat dilakukan dengan tatanan menuru, tetapi DESC perlu ditetapkan untuk tiap nama kolom.

MariaDB [root93]> SELECT * FROM daftar_supir ORDER by nama DESC, tanggal_travel DESC;
+--------+-------+----------------+------+
| id_rek | nama | tanggal_travel | km |
+--------+-------+----------------+------+
| 6 | Susi | 2014-12-02 | 502 |
| 1 | Susi | 2014-11-29 | 391 |
| 7 | Henry | 2014-12-01 | 273 |
| 9 | Henry | 2014-11-30 | 574 |
| 2 | Henry | 2014-11-29 | 300 |
| 5 | Henry | 2014-11-26 | 278 |
| 3 | Henri | 2014-11-27 | 367 |
| 8 | Ben | 2014-12-02 | 837 |
| 4 | Ben | 2014-11-29 | 131 |
+--------+-------+----------------+------+
9 rows in set (0.00 sec)


Klausa ORDER BY multi-kolom dapat dipakai untuk melakukan pengurutan campuran di mana beberapa kolom diurutkan dengan tatanan menaik dan kolom-kolom lainnya diurutkan dengan tatannan menurun, dan kemudian mengurutkan tanggal_travel dengan tatanan menaik

MariaDB [root93]> SELECT * FROM daftar_supir ORDER by nama DESC, tanggal_travel;
+--------+-------+----------------+------+
| id_rek | nama  | tanggal_travel | km   |
+--------+-------+----------------+------+
|      1 | Susi  | 2014-11-29     |  391 |
|      6 | Susi  | 2014-12-02     |  502 |
|      5 | Henry | 2014-11-26     |  278 |
|      2 | Henry | 2014-11-29     |  300 |
|      9 | Henry | 2014-11-30     |  574 |
|      7 | Henry | 2014-12-01     |  273 |
|      3 | Henri | 2014-11-27     |  367 |
|      4 | Ben   | 2014-11-29     |  131 |
|      8 | Ben   | 2014-12-02     |  837 |
+--------+-------+----------------+------+
9 rows in set (0.00 sec)

Klausa ORDE by yang ditunjukan sejauh ini mengaccu kepada kolom- kolom yang akan diurutkan berdasarkan nama kolom. Anda sebenarnya juga dapat menggunakan berdasarkan posisi kolom atau menggunakan alias. Posisi di dalam daftar keluaran dimulai dengan 1. Query berikut hasil query berdasarkan kolom keluaran ketiga, km

MariaDB [root93]> SELECT nama, tanggal_travel, km FROM daftar_supir ORDER by 3;
+-------+----------------+------+
| nama  | tanggal_travel | km   |
+-------+----------------+------+
| Ben   | 2014-11-29     |  131 |
| Henry | 2014-12-01     |  273 |
| Henry | 2014-11-26     |  278 |
| Henry | 2014-11-29     |  300 |
| Henri | 2014-11-27     |  367 |
| Susi  | 2014-11-29     |  391 |
| Susi  | 2014-12-02     |  502 |
| Henry | 2014-11-30     |  574 |
| Ben   | 2014-12-02     |  837 |
+-------+----------------+------+

Selanjutnya jika kolom keluaran memiliki nama alias, maka kita dapat mengakses nama lias tersebut pada klausa ORDER BY.

MariaDB [root93]> SELECT nama, tanggal_travel, km AS jarak FROM daftar_supir ORDER by jarak;
+-------+----------------+-------+
| nama  | tanggal_travel | jarak |
+-------+----------------+-------+
| Ben   | 2014-11-29     |   131 |
| Henry | 2014-12-01     |   273 |
| Henry | 2014-11-26     |   278 |
| Henry | 2014-11-29     |   300 |
| Henri | 2014-11-27     |   367 |
| Susi  | 2014-11-29     |   391 |
| Susi  | 2014-12-02     |   502 |
| Henry | 2014-11-30     |   574 |
| Ben   | 2014-12-02     |   837 |
+-------+----------------+-------+

Kolom-kolom yang ditetapkan berdasarkan posisi atau alias dapat diurutkan dengan tatanan menaik atau menurun.

MariaDB [root93]> SELECT nama, tanggal_travel, km  FROM daftar_supir ORDER by 3 DESC;
+-------+----------------+------+
| nama  | tanggal_travel | km   |
+-------+----------------+------+
| Ben   | 2014-12-02     |  837 |
| Henry | 2014-11-30     |  574 |
| Susi  | 2014-12-02     |  502 |
| Susi  | 2014-11-29     |  391 |
| Henri | 2014-11-27     |  367 |
| Henry | 2014-11-29     |  300 |
| Henry | 2014-11-26     |  278 |
| Henry | 2014-12-01     |  273 |
| Ben   | 2014-11-29     |  131 |
+-------+----------------+------+
9 rows in set (0.00 sec)

MariaDB [root93]> SELECT nama, tanggal_travel, km AS jarak FROM daftar_supir ORDER by jarak DESC;
+-------+----------------+-------+
| nama  | tanggal_travel | jarak |
+-------+----------------+-------+
| Ben   | 2014-12-02     |   837 |
| Henry | 2014-11-30     |   574 |
| Susi  | 2014-12-02     |   502 |
| Susi  | 2014-11-29     |   391 |
| Henri | 2014-11-27     |   367 |
| Henry | 2014-11-29     |   300 |
| Henry | 2014-11-26     |   278 |
| Henry | 2014-12-01     |   273 |
| Ben   | 2014-11-29     |   131 |
+-------+----------------+-------+
9 rows in set (0.00 sec)

Baca selanjutnya : Mengurutkan Subset Dari Tabel - MySQL Dasar #34

0 Response to "Menggunakan ORDER BY Untuk Mengurutkan Query - MySQL Dasar #33"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin