Kueri SQL DISTINCT digunakan untuk mengambil nilai unik dari tabel menggunakan pernyataan SELECT dalam SQL.
Mungkin ada situasi yang muncul saat Anda ingin mengambil nilai unik dari tabel, tetapi nilai duplikat juga ada di dalam tabel. Dalam kasus seperti itu, Anda harus menggunakan kueri SELECT DISTINCT untuk menghilangkan nilai duplikat dan mengambil nilai unik dari tabel.
Sintaks dari pernyataan SELECT DISTINCT:
SELECT DISTINCT columnname1, columnname2 FROM table_name;
Pertimbangkan tabel karyawan yang ada yang memiliki catatan berikut:
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE | 1 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | UJI | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGRWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARKIT | SHARMA | 55500 | DELHI | UJI | 4 |
Mari kita pahami SELECT DISTINCT dengan bantuan sebuah contoh.
Contoh 1: Tulis kueri untuk mengambil detail karyawan yang gaji karyawannya lebih besar dari 55000 tanpa menggunakan kata kunci DISTINCT.
SELECT * FROM EMPLOYEES WHERE SALARY > 55000;
Dalam pernyataan di atas, kami telah mengambil detail karyawan dari tabel karyawan yang gaji karyawannya lebih besar dari 55000, termasuk nilai duplikatnya.
Output untuk pernyataan berikut:
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE | 1 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 |
4003 | RUCHIKA | AGRWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARKIT | SHARMA | 55500 | DELHI | UJI | 4 |
Hasil di atas menunjukkan bahwa kami telah mengambil detail karyawan, termasuk nilai duplikat.
Contoh 2: Tulis kueri untuk menampilkan gaji karyawan dari tabel karyawan yang gaji karyawannya lebih besar dari 55000 menggunakan kata kunci DISTINCT.
SELECT DISTINCT (SALARY) FROM EMPLOYEES WHERE SALARY > 55000;
Dalam pernyataan di atas, kami mengambil gaji karyawan dari tabel karyawan yang gajinya lebih besar dari 55000, di mana kami menghilangkan nilai duplikat. Gaji yang berbeda akan menampilkan gaji unik dari tabel karyawan.
Output untuk pernyataan berikut:
GAJI |
65000 |
60000 |
55500 |
65500 |
58500 |
60500 |
Pada contoh pertama, kami telah mengambil detail karyawan yang gajinya lebih besar dari 55000. Hasil kueri menyertakan nilai duplikat. Namun pada contoh kedua, kita mengeksekusi query yang sama untuk menampilkan gaji karyawan yang gajinya lebih besar dari 55000. Query tersebut menampilkan hasil yang menghilangkan nilai duplikat karena kita menggunakan kata kunci DISTINCT diikuti oleh kolom gaji.
Contoh 3: Tulis kueri untuk menampilkan kota karyawan dan gaji dari tabel karyawan tanpa menggunakan kata kunci yang berbeda.
SELECT SALARY, CITY FROM EMPLOYEES;
Kami telah menampilkan gaji karyawan dan nama kota dari tabel karyawan pada pernyataan di atas, termasuk nilai duplikat.
Output untuk pernyataan berikut:
GAJI | KOTA |
65500 | PUNE |
60000 | NOIDA |
50500 | JAIPUR |
55500 | CHANDIGARH |
65500 | PUNE |
50.000 | MUMBAI |
55500 | PUNE |
50500 | JAIPUR |
58500 | MUMBAI |
60500 | MUMBAI |
54500 | NOIDA |
60000 | DELHI |
55500 | DELHI |
Contoh 4: Tulis kueri untuk menampilkan kota karyawan dan gaji dari tabel karyawan menggunakan kata kunci yang berbeda.
PILIH GAJI BERBEDA, KOTA DARI KARYAWAN;
Kami telah mengambil gaji karyawan dan kota dari tabel karyawan dalam pernyataan di atas. Tetapi kami telah mengambil nilai unik yang tidak diulang di seluruh tabel menggunakan kata kunci DISTINCT.
Output untuk pernyataan berikut:
GAJI | KOTA |
65500 | PUNE |
60000 | NOIDA |
50500 | JAIPUR |
55500 | CHANDIGARH |
50.000 | MUMBAI |
55500 | PUNE |
58500 | MUMBAI |
60500 | MUMBAI |
54500 | NOIDA |
60000 | DELHI |
55500 | DELHI |
Contoh 5: Tulis kueri untuk menampilkan nama belakang karyawan dan departemen dari tabel karyawan di mana nama departemen dimulai dengan 'O' tanpa menggunakan kata kunci DISTINCT;
SELECT LAST_NAME, DEPARTMENT FROM EMPLOYEES WHERE DEPARTMENT LIKE 'O%';
Dalam pernyataan di atas, kami mengambil nama belakang karyawan, departemen dari tabel karyawan dari karyawan yang nama departemennya dimulai dengan 'O', termasuk nilai duplikat.
Output untuk pernyataan berikut:
LAST_NAME | DEPARTEMEN |
MISHRA | ORACLE |
SHARMA | ORACLE |
SHARMA | ORACLE |
AGARWAL | ORACLE |
Hanya empat catatan yang ditampilkan dari karyawan yang departemennya dimulai dengan 'O'.
Contoh 6: Tulis kueri untuk menampilkan nama belakang karyawan dan departemen dari tabel karyawan di mana nama departemen dimulai dengan 'O' menggunakan kata kunci DISTINCT;
SELECT DISTINCT LAST_NAME, DEPARTMENT FROM EMPLOYEES WHERE DEPARTMENT LIKE 'O%';
Kami telah menggunakan kueri yang sama pada contoh 5, hanya menambahkan kata kunci DISTINCT tepat sebelum nama kolom yang akan menampilkan nilai unik dari tabel karyawan yang nama departemennya dimulai dengan 'O'.
Output untuk pernyataan berikut:
LAST_NAME | DEPARTEMEN |
MISHRA | ORACLE |
SHARMA | ORACLE |
AGARWAL | ORACLE |
Kueri yang sama yang telah kami jalankan dalam kueri di atas, kami menambahkan kata kunci DISTINCT tepat sebelum kolom. Output yang kita peroleh berbeda dengan contoh di atas karena tampilan hasil memiliki nilai yang unik.
Contoh 7: Tulis kueri untuk menghitung gaji karyawan dari tabel karyawan tanpa menggunakan kata kunci yang berbeda.
SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;
Dalam pernyataan di atas, kami telah menghitung jumlah total gaji dari tabel karyawan, termasuk nilai duplikat.
Output untuk pernyataan berikut:
TOTAL GAJI |
13 |
Contoh 8: Tulis kueri untuk menghitung gaji karyawan dari tabel karyawan menggunakan kata kunci yang berbeda.
SELECT COUNT(DISTINCT SALARY) AS TOTAL SALARY FROM EMPLOYEES;
Dalam pernyataan di atas, kami telah menghitung jumlah total gaji dari tabel karyawan, tidak termasuk nilai duplikat.
Output untuk pernyataan berikut:
TOTAL GAJI |
8 |