Menghilangkan Data Duplikat dan Mengurutkan Data di Dalam Query Microsoft Access

Alhamdulillah, mari kita lanjutkan belajar Query. Dua hal yang cukup penting dalam pengolahan data di query, yakni menghilangkan data duplikat dan mengurutkan data.

Menghilangkan Data Duplikat

Sintaknya: SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]     FROM table

Bila yg digunakan ALL, maka akan ditampilkan semua record, misal:

SELECT ALL *

FROM Employees

ORDER BY EmployeeID;

Atau:

SELECT *

FROM Employees

ORDER BY EmployeeID;

Bila yg digunakan DISTINCT, maka aka menghilangkan data duplikat pada field yang dipilih. Jadi DISTINCT digunakan untuk menampilkan suatu record menjadi terkelompok atau terfilter berdasarkan nilai suatu field, sehingga tidak ada nilai dari field tersebut yang duplikat. Persis seperti fungsi fasilitas “Group” pada query, hanya saja Group lebih kompleks penggunaannya. Misal:

SELECT DISTINCT
LastName
FROM Employees;

Bila yg digunakan DISTINCTROW, maka aka menghilangkan data duplikat pada baris (record) yang dipilih. Jadi DISTINCTROW fungsinya hampir sama dengan DISTINCT, hanya saja DISTINCTROW akan menampilkan suatu record menjadi terkelompok atau terfilter berdasarkan nilai suatu record atau baris, sehingga tidak ada nilai dari record tersebut yang duplikat. DISTINCTROW akan mengambil nilai untuk filter data langsung dari nilai satu record, bukan dari nilai suatu field. Misal:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

Penting diketahui, DISTINCTROW hanya untuk query yg terdiri dari dua sumber data, baik table maupun query, dan dia tidak bisa digunakan untuk menghilangkan data duplikat untuk seluruh field dari seluruh sumber data. Saya sendiri lebih sering menggunakan DISTINCT daripada DISTINCTROW.

Bila yg digunakan TOP n [PERCENT], maka akan menampilkan data yang teratas, sebanyak “n”. Jadi bila ada kode SQL “TOP 10”, maka ia digunakan untuk menampilkan data paling atas sebanyak 10 record. Penggunaan TOP tergantung dengan pengurutan data, apakah ascending atau descending dan tergantung dengan banyaknya record yang hendak dilihat. Jika hendak melihat 100 record yang paling atas, maka kode SQL nya jadi TOP 100. Misal:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 1994
ORDER BY GradePointAverage DESC;

Atau:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 1994
ORDER BY GradePointAverage ASC;

Mengurutkan Data

Perhatikan contoh-contoh SQL diatas, dipaling akhir ada kode ORDER BY. Ini berfungsi untuk mengurutkan data, baik terurut secara A ke Z (Ascending) maupun dari Z ke A (Descending), baik dari nilai kecil ke besar atau sebaliknya. Misal:

Mengurutkan Data dari Kecil ke Besar: ORDER BY GradePointAverage ASC;

Mengurutkan Data dari Besar ke Kecil: ORDER BY GradePointAverage DESC;

Demikianlah pelajaran query kita kali ini, semoga bermanfaat buat kita semua.

0 thoughts on “Menghilangkan Data Duplikat dan Mengurutkan Data di Dalam Query Microsoft Access

  • 12/04/2013 at 4:10 pm
    Permalink

    makasih ya.. ini membantu bgt (kasi 10 jempol deh) 😀

    Reply
  • 30/09/2013 at 10:30 am
    Permalink

    alo kk, bagaimana kalau begini

    Data :

    T1309309
    T13093011
    T13093010

    ketika sy urutkan dengan perintah :
    SELECT * FROM TABEL ORDER BY KODE DESC

    hasilnya selalu yg paling atas adalah T1309309

    nah bagaimana supaya yg paling atas T13093011 ?

    Trim’s 🙂

    Reply
    • 11/10/2013 at 5:01 pm
      Permalink

      Agak sulit Mas Willy, karena format berbeda. Kecuali bila format right(Data,7) menggunakan format “0000000”.

      Reply
  • 04/12/2013 at 8:00 pm
    Permalink

    klau sy lg, sya gunakan ‘select distinct kd_transaksi from transaksi’. kode transaksi yg duplikat memang hanya tampil satu baris, tpi mslahnya column yg lain tidak muncul. hnya kolom kd_transaksi sja yg ada datanya. solusinya agar semua kolom muncul bgmna ya ?

    Reply
    • 19/12/2013 at 9:43 pm
      Permalink

      Tidak bisa Pak, alternatifnya bisa manfaatkan query tambahan, untuk lookup ke kolom lainnya tsb.

      Reply
  • 26/08/2015 at 8:00 am
    Permalink

    om gimana kalo gini ? select distinct Tanggal from data_absen order by field(Tanggal,’Jan’,’Feb’,’Mar’,’Apr’,’Mei’,’Jun’,’Jul’,’Agu’,’Sep’,’Okt’,’Nov’,’Des’) . nah didepannya ada tanggal biar berurutan gimana ya?

    Reply

Leave a Reply

%d bloggers like this: