Pengertian Sorting Data di SQL

SQL - Sorting Data

Pengertian Sorting Data

Sorting data adalah proses mengatur data kedalam urutan yang sesuai sehingga kita dapat menganalisisnya dengan lebih efektif. Misalkan, Kita ingin melihat data nilai ujian pada suatu mata pelajaran untuk melihat siapa saja murid dengan nilai tertinggi hingga terendah, maka kita bisa menggunakan query sorting data untuk menghasilkan data kinerja ujian.

Dengan menggunakan perintah SELECT, data yang ditampilkan sesuai dengan urutan pada saat dibuat kedalam database. hasil tersebut adalah pernyortiran data secara default. Tutorial dibawah akan menjelaskan bagaimana kita dapat mengurutkan data hasil dari query yang kita perintahkan. Menyortir hanya mengatur ulang hasil kita dengan cara tertentu. Pengurutan dapat dilakukan pada satu atau lebih kolom.

Ada beberapa query untuk Sorting data atau penyortiran data seperti yang disebutkan dibawah ini -

  • ORDER BY (Mengurutkan data dari atas kebawah atau dari bawah ke atas)
  • GROUP BY (Mengatur data yang identik di dalam field)

SQL ORDER BY

Pernyataan ORDER BY di sql digunakan untuk mengurutkan data dalam urutan naik atau turun berdasarkan satu atau lebih kolom.

  • Secara default ORDER BY mengurutkan data dalam urutan naik.
  • Kita dapat menggunakan perintah DESC untuk mengurutkan data urutan menurun dan kata kunci ASC untuk mengurutkan data urutan naik.

Sintaksis

Sintaks dasar dari klause ORDER BY terlihat seperti dibawah ini -
SELECT kolom1, kolom2, ..., kolomN
FROM nama_tabel
WHERE [kondisi]
[ORDER BY kolom1, kolom2, ..., kolomN] [ASC | DESC];

Kalian dapat menggunakan lebih dari satu kolom dalam klause ORDER BY. Pastikan kolom apapun yang akan kita gunakan untuk mengurutkan kolom itu harus ada di daftar kolom.

Contoh

Kita akan menggunakan tabel PELANGGAN yang sudah kita buat yang datanya seperti dibawah ini -
+----+--------+------+----------+-------+
| id | nama   | umur | alamat   | gaji  |
+----+--------+------+----------+-------+
|  1 | Sandi  |   32 | Bandung  |  2000 |
|  2 | Dadit  |   25 | Sidoarjo |  1500 |
|  3 | Budi   |   23 | Jakarta  |  2000 |
|  4 | Dian   |   25 | Jakarta  |  6500 |
|  5 | Hendra |   27 | Surabaya |  8500 |
|  6 | Mikail |   22 | Makasar  |  4500 |
|  7 | Mukti  |   24 | Cirebon  | 10000 |
+----+--------+------+----------+-------+
7 rows in set (0.057 sec)

Kita akan mencoba mengambil data, yang akan mengurutkan data dengan urutan dari bawah di kolom NAMA. Dengan sintaks seperti dibawah ini - 

SELECT * FROM pelanggan
ORDER BY nama DESC;

Maka data yang ditampilkan adalah sebagai berikut -

 +----+--------+------+----------+-------+
| id | nama   | umur | alamat   | gaji  |
+----+--------+------+----------+-------+
|  1 | Sandi  |   32 | Bandung  |  2000 |
|  7 | Mukti  |   24 | Cirebon  | 10000 |
|  6 | Mikail |   22 | Makasar  |  4500 |
|  5 | Hendra |   27 | Surabaya |  8500 |
|  4 | Dian   |   25 | Jakarta  |  6500 |
|  2 | Dadit  |   25 | Sidoarjo |  1500 |
|  3 | Budi   |   23 | Jakarta  |  2000 |
+----+--------+------+----------+-------+
7 rows in set (0.056 sec)

 Terlihat dari data di atas bahwa pengurutan dari bawah descending Z ke A.

Catatan: ASC adalah nilai defailt untul klause ORDER BY. Jadi, jika kita tidak menentukan pengurutan apapun setelah pernyataan ORDER BY, output yang diurutkan dalam pengeurutan dari atas ascending A ke Z secara default.

Contoh

Query berikut akan memberikan output yang berbeda dengan hasil diatas -
SELECT * FROM pelanggan ORDER BY nama;
+----+--------+------+----------+-------+
| id | nama   | umur | alamat   | gaji  |
+----+--------+------+----------+-------+
|  3 | Budi   |   23 | Jakarta  |  2000 |
|  2 | Dadit  |   25 | Sidoarjo |  1500 |
|  4 | Dian   |   25 | Jakarta  |  6500 |
|  5 | Hendra |   27 | Surabaya |  8500 |
|  6 | Mikail |   22 | Makasar  |  4500 |
|  7 | Mukti  |   24 | Cirebon  | 10000 |
|  1 | Sandi  |   32 | Bandung  |  2000 |
+----+--------+------+----------+-------+
7 rows in set (0.050 sec)

Data yang dihasilkan akan mengurutkan nama secara ascending A ke Z.

SQL GROUP BY

Pernyataan GROUP BY di sql digunakan untuk mengelompokan sebuah data dengan beberapa bantuan fungsi. Yaitu dengan kolom tertentu yang memiliki nilai yang sama dalam baris yang berbeda maka itu akan mengatur untuk pengelompokan data.
  • Klause GROUP BY harus dikombinasikan dengan pernyataan SELECT.
  • Dalam query, klause GROUP BY harus ditempatkan setelah klause WHERE.
  • Dalam query, klause GROUP BY ditempatkan sebelum ORDER BY jika digunakan.

Sintaksis

Sintaks dasar dari klause GROUP BY ditampilkan dalam query berikut. Klause GROUP BY harus mengikuti ketentuan klause WHERE dan haruslah ditempatkan sebelum ORDER BY jika digunakan. Yang querynya ditunjukan seperti dibawah ini -
SELECT kolom1, kolom2
FROM nama_tabel
WHERE [kondisi]
GROUP BY kolom1, kolom2
ORDER BY kolom1, kolom2;

Contoh

Kita masih menggunakan tabel PELANGGAN sebagai contohnya seperti yang ditampilkan seperti dibawah - 
+----+--------+------+----------+-------+
| id | nama   | umur | alamat   | gaji  |
+----+--------+------+----------+-------+
|  3 | Budi   |   23 | Jakarta  |  2000 |
|  2 | Dadit  |   25 | Sidoarjo |  1500 |
|  4 | Dian   |   25 | Jakarta  |  6500 |
|  5 | Hendra |   27 | Surabaya |  8500 |
|  6 | Mikail |   22 | Makasar  |  4500 |
|  7 | Mukti  |   24 | Cirebon  | 10000 |
|  1 | Sandi  |   32 | Bandung  |  2000 |
+----+--------+------+----------+-------+
7 rows in set (0.050 sec)
Jika kita ingin mengetahui jumlah total gaji pada setiap pelanggan, maka query GROUP BY adalah sebagai berikut;
SELECT nama, SUM(gaji) FROM pelanggan
GROUP BY gaji;

 Maka data yang ditampilkan dari query diatas adalah sebagai berikut - 

+--------+-----------+
| nama   | SUM(gaji) |
+--------+-----------+
| Budi   |      2000 |
| Dadit  |      1500 |
| Dian   |      6500 |
| Hendra |      8500 |
| Mikail |      4500 |
| Mukti  |     10000 |
| Sandi  |      2000 |
+--------+-----------+
7 rows in set (0.033 sec)

Catatan: Tidak ada perubahan jika kita membandingkan dengan dengan hasil sebelumnya. 

Sekarang, mari kita duplikasi NAMA dari tabel PELANGGAN yang terlihat seperti tabel dibawah ini.

+--------+-----------+
| nama   | SUM(gaji) |
+--------+-----------+
| Budi   |      2000 |
| Budi   |      1500 |
| Dadit  |      6500 |
| Dadit  |      8500 |
| Sandi  |      4500 |
| Mukti  |     10000 |
+--------+-----------+

Setelah data NAMA kita duplikasi yang terlihat seperti data yang diatas, maka kita coba lagi dengan query sebagai berikut -

SELECTT nama, SUM(gaji) 
FROM pelanggan
GROUP BY nama;

 Maka data yang dihasilkan adalah seperti dibawah ini - 

+--------+-----------+
| nama   | SUM(gaji) |
+--------+-----------+
| Budi   |      3500 |
| Dadit  |     15000 |
| Sandi  |      4500 |
| Mukti  |     10000 |
+--------+-----------+

 

Posting Komentar untuk "Pengertian Sorting Data di SQL"