Follow us:-
  • By novaldi
  • 12 November 2023
  • No Comments

Query Pada SQL

KUERI / QUERY

 

Kami akan segera menunjukkan kepada Anda 20 contoh kueri SQL dasar untuk mulai berbicara dengan database. Semua query ini diajarkan dalam kursus Dasar-Dasar SQL kami; kursus ini akan memberi Anda lebih banyak struktur, contoh, dan tantangan untuk dipecahkan. Kursus ini memiliki 129 latihan interaktif tentang query satu atau beberapa tabel, menggabungkan dan mengelompokkan data, JOIN, subkueri, dan operasi set. Bahkan dengan 20 contoh yang akan datang, kami tidak akan menampilkan semua detail atau bahkan semua kueri tingkat dasar. Karena itu, kami menyarankan Anda untuk menggunakan kursus ini sebagai platform untuk mempraktikkan dasar-dasar yang akan kita bahas di sini.

Selain itu, sebagian besar contoh kami disajikan dengan baik di Lembar Sontekan Dasar-Dasar SQL kami. Jangan ragu untuk memilikinya di sisi Anda – ini dapat membantu Anda lebih memahami apa yang akan Anda pelajari selanjutnya.

 

Jangan buang-buang waktu lagi! Kita akan memperkenalkan dataset, lalu kita akan mulai menulis dan menjelaskan kueri SQL dasar.

 

Dataset

Dataset terdiri dari dua tabel. Tabel pertama ditunjukkan di bawah ini; Anda dapat membuat tabel ini dengan menyalin dan menjalankan kueri ini dari GitHub.

id first_name last_name department salary
1 Paul Garrix Corporate 3,547.25
2 Astrid Fox Private Individuals 2,845.56
3 Matthias Johnson Private Individuals 3,009.41
4 Lucy Patterson Private Individuals 3,547.25
5 Tom Page Corporate 5,974.41
6 Claudia Conte Corporate 4,714.12
7 Walter Deer Private Individuals 3,547.25
8 Stephanie Marx Corporate 2,894.51
9 Luca Pavarotti Private Individuals 4,123.45
10 Victoria Pollock Corporate 4,789.53

Seperti tabel lainnya, tabel ini memiliki nama:employees. Setiap tabel memiliki kolom-kolom yang juga memiliki nama. Nama-nama tersebut menjelaskan data apa yang ada di setiap kolom.

Kolom dan data dalam tabel di atas adalah:

id – ID unik karyawan dan kunci utama tabel.
first_name – Nama depan karyawan.
last_name – Nama belakang karyawan.
departemen – Departemen karyawan.
salary – Gaji bulanan karyawan, dalam USD.

Semua ini memberitahu kita bahwa tabel ini adalah daftar karyawan perusahaan dan gaji mereka. Terdapat juga data mengenai departemen karyawan. Semua karyawan bekerja di divisi penjualan, di mana departemen tersebut dapat berupa Perusahaan atau Perorangan. Dengan kata lain, karyawan menjual produk perusahaan ke perusahaan dan individu pribadi.

Tabel lain dalam dataset ini bernama quarterly_sales. Ini ditunjukkan di bawah ini, dan kueri untuk membuatnya ada di sini.

employee_id q1_2022 q2_2022 q3_2022 q4_2022
8 3,471.41 14,789.25 3,478.34 1,254.23
4 5,417.81 12,846.23 8,741.54 3,589.99
10 1,547.52 1,269.66 1,478.65 2,474.33
1 8,715.55 8,465.65 24,747.82 3,514.36
3 12,774.51 24,784.31 12,223.34 8,451.51
2 4,989.23 5,103.22 4,897.98 5,322.05
7 18,415.66 15,279.37 14,634.44 14,445.12
6 2,498.63 8,741.45 3,997.65 2,497.21
5 6,349.74 7,555.55 6,944.35 7,788.01
9 4,485.36 4,101.50 8,787.45 7,648.90

Kolom-kolom tersebut adalah:

employee_id – ID unik dari karyawan. Juga, kunci asing yang merujuk ke id kolom dari tabel karyawan.
q1_2022 – Penjualan yang dilakukan oleh karyawan tersebut pada kuartal pertama tahun 2022.
q2_2022 – Penjualan yang dilakukan oleh karyawan tersebut pada kuartal kedua tahun 2022.
q3_2022 – Penjualan yang dilakukan oleh karyawan tersebut pada kuartal ketiga tahun 2022.
q4_2022 – Penjualan yang dilakukan oleh karyawan tersebut pada kuartal keempat tahun 2022.

Secara umum, tabel ini adalah daftar penjualan setiap kuartal yang dilakukan oleh setiap karyawan yang ditunjukkan pada tabel pertama.

Sekarang, mari kita mulai menulis kueri SQL.

 

1. Memilih Semua Kolom Dari Satu Tabel

Kueri ini berguna ketika Anda ingin dengan cepat mendapatkan semua kolom dari tabel tanpa menulis setiap kolom di PILIHAN pernyataan.

Query

Penjelasan

Setiap kali Anda ingin memilih sejumlah kolom dari tabel apa pun, Anda perlu menggunakan kolom itu SELECT pernyataan. Anda menulisnya, agak jelas, dengan menggunakan SELECT kata kunci.

Setelah kata kunci muncul tanda bintang (*), yang merupakan singkatan untuk “ semua kolom dalam tabel ”.

Untuk menentukan tabel, gunakan FROM klausa dan tulis nama tabel sesudahnya.

Keluaran

Output kueri adalah seluruh tabel employees, seperti yang ditunjukkan di bawah ini.

id first_name last_name department salary
1 Paul Garrix Corporate 3,547.25
2 Astrid Fox Private Individuals 2,845.56
3 Matthias Johnson Private Individuals 3,009.41
4 Lucy Patterson Private Individuals 3,547.25
5 Tom Page Corporate 5,974.41
6 Claudia Conte Corporate 4,714.12
7 Walter Deer Private Individuals 3,547.25
8 Stephanie Marx Corporate 2,894.51
9 Luca Pavarotti Private Individuals 4,123.45
10 Victoria Pollock Corporate 4,789.53

2. Memilih Satu Kolom Dari Satu Tabel

Anda dapat menggunakan kueri ini ketika Anda hanya perlu satu kolom dari tabel..

Query

SELECT first_name
FROM employees;

 

Penjelasan

Pendekatannya mirip dengan permintaan sebelumnya. Namun, kali ini, alih-alih tanda bintang, kami menulis nama kolom tertentu di SELECT. Dalam hal ini, itu adalah kolomnya first_name.

Baris kedua dari kueri adalah sama: ia mereferensikan tabel di FROM klausa.

Keluaran

Permintaan mengembalikan daftar nama depan karyawan ’.

first_name
Paul
Astrid
Matthias
Lucy
Tom
Claudia
Walter
Stephanie
Luca
Victoria

3. Memilih Dua Kolom Dari Satu Tabel

Kueri ini berguna saat memilih dua (atau lebih) kolom dari satu tabel.

Query

SELECT first_name,
     last_name
FROM employees;

 

Penjelasan

Sekali lagi, pendekatannya mirip dengan contoh sebelumnya. Untuk memilih dua kolom, Anda harus menuliskan namanya SELECT. Yang penting adalah bahwa kolom harus dipisahkan dengan koma. Anda dapat melihat dalam contoh bahwa ada koma di antara kolom first_name dan last_name.

Then, as usual, reference the table employees in FROM.

Keluaran

Sekarang kueri menunjukkan nama lengkap karyawan ’.

first_name last_name
Paul Garrix
Astrid Fox
Matthias Johnson
Lucy Patterson
Tom Page
Claudia Conte
Walter Deer
Stephanie Marx
Luca Pavarotti
Victoria Pollock

4. Memilih Dua (atau Lebih) Kolom Dari Satu Tabel dan Pemfilteran Menggunakan Perbandingan Numerik WHERE

Mengetahui kueri SQL ini akan memungkinkan Anda untuk memfilter data sesuai dengan nilai numerik. Anda dapat melakukannya dengan menggunakan operator perbandingan di WHERE klausa.

Inilah ikhtisar dari operator perbandingan SQL.

Operator Perbandingan Deskripsi
= Sama dengan
> Lebih besar dari
< Kurang dari
> = Lebih besar dari atau sama dengan
< = Kurang dari atau sama dengan
< > Tidak sama dengan

Query

SELECT
  first_name,
  last_name,
  salary
FROM employees
WHERE salary > 3800;

 

Penjelasan

Kueri sebenarnya memilih tiga, bukan dua kolom.  Itu sama dengan dua kolom: cukup tuliskan SELECT dan pisahkan dengan koma.

Lalu kami referensi tabel di FROM.

Sekarang, kita hanya perlu menunjukkan kepada karyawan dengan gaji di atas 3.800. Untuk melakukan ini, Anda perlu menggunakannya WHERE. Ini adalah klausa yang menerima kondisi dan digunakan untuk memfilter output. Melewati tabel dan hanya mengembalikan data yang memenuhi kondisi.

Dalam kasus kami, kami mencari gaji ‘ lebih besar dari ’ nomor tertentu. Dengan kata lain, suatu kondisi menggunakan operator perbandingan >.

Untuk mengatur kondisi, kami menuliskan nama kolom di WHERE. Kemudian datang operator perbandingan, dan setelah itu, nilai bahwa data harus lebih besar dari. Kondisi ini sekarang akan mengembalikan semua gaji yang di atas 3.800.

Keluaran

Permintaan mengembalikan empat karyawan dan gaji mereka. Seperti yang Anda lihat, mereka semua memiliki gaji di atas 3.800.

nama depan nama terakhir gaji
Tom Halaman 5,974.41
Claudia Conte 4,714.12
Luca Pavarotti 4,123.45
Victoria Pollock 4,789.53

5. Memilih Dua Kolom dan Pemfilteran Menggunakan Kondisi Kesetaraan WHERE

Sekali lagi, contoh kueri SQL dasar ini berguna ketika Anda ingin memilih beberapa kolom tetapi tidak semua baris dari tabel. Sekarang Anda ingin menemukan nilai yang sama dengan nilai dari kondisi tersebut. Untuk itu, Anda memerlukan kondisi kesetaraan (=).

Query

SELECT
  first_name,
  last_name
FROM employees
WHERE first_name = 'Luca';

 

Penjelasan

Kueri memilih karyawan ’ nama depan dan belakang.

Namun, kami hanya ingin menunjukkan kepada karyawan yang namanya Luca. Untuk ini, kami gunakan lagi WHERE. Pendekatannya mirip dengan contoh sebelumnya: kami menggunakan WHERE, menulis nama kolom, dan menggunakan operator perbandingan. Kali ini, kondisi kami menggunakan tanda yang sama (=).

Dengan kata lain, nilai-nilai di kolom first_name harus sama dengan Luca. Juga, ketika kondisinya bukan angka tetapi teks atau tanggal / waktu, itu harus ditulis dalam tanda kutip tunggal (''). Itu sebabnya kondisi kami ditulis sebagai ‘Luca‘, tidak hanya Luca.

Keluaran

Outputnya menunjukkan hanya ada satu karyawan bernama Luca, dan nama lengkapnya adalah Luca Pavarotti.

nama depan nama terakhir
Luca Pavarotti

 

6. Memilih Dua Kolom dan Ordering dengan Satu Kolom

Berikut adalah contoh kueri SQL dasar lain yang menurut Anda berguna. Ini dapat digunakan kapan pun Anda harus memesan output dengan cara tertentu agar lebih mudah dibaca.

Memesan atau menyortir output dilakukan dengan menggunakan ORDER BY klausa. Secara default, ini memesan output dalam urutan menaik.  Ini bekerja berdasarkan abjad (untuk data teks), dari yang terendah ke yang tertinggi (untuk data numerik), atau dari yang tertua hingga tanggal atau waktu terbaru (untuk tanggal dan waktu).

Query

SELECT
  first_name,
  last_name
FROM employees
ORDER BY last_name;

 

Penjelasan

Kami kembali memilih karyawan ’ nama depan dan belakang. Tetapi sekarang kami ingin mengurutkan output dengan cara tertentu. Dalam contoh ini, itu adalah nama keluarga karyawan ’. Untuk melakukan itu, kami gunakan ORDER BY. Di dalamnya, kami cukup menulis nama kolom.

Kami mungkin menambahkan kata kunci ASC setelah itu untuk mengurutkan output naik. Namun, itu tidak wajib, karena pengurutan naik adalah default di SQL.

Keluaran

Kueri mengembalikan daftar karyawan yang dipesan berdasarkan abjad dengan nama belakang mereka.

nama depan nama terakhir
Claudia Conte
Walter Rusa
Astrid Rubah
Paul Garrix
Matthias Johnson
Stephanie Marx
Tom Halaman
Lucy Patterson
Luca Pavarotti
Victoria Pollock

7. Memilih Dua Kolom dan Ordering dengan Decending oleh Satu Kolom

Contoh ini mirip dengan yang sebelumnya dan memiliki tujuan yang sama: menyortir output kueri SQL Anda. Namun, dalam hal ini, data dipesan dalam urutan menurun (Z ke A, 10 ke 1).

Query

SELECT
  first_name,
  last_name
FROM employees
ORDER BY last_name DESC;

 

Penjelasan

Kueri hampir persis sama dengan contoh sebelumnya. Satu-satunya perbedaan adalah kami memesan output dengan nama karyawan secara turun.

Untuk melakukan itu, masukkan kata kunci DESC setelah last_name kolom di ORDER BY klausa.

Keluaran

nama depan nama terakhir
Victoria Pollock
Luca Pavarotti
Lucy Patterson
Tom Halaman
Stephanie Marx
Matthias Johnson
Paul Garrix
Astrid Rubah
Walter Rusa
Claudia Conte

Anda dapat melihat bahwa output dipesan seperti yang kita inginkan.

 

8. Memilih Dua Kolom Dari Satu Table dan Ordering dengan Decending oleh Dua Kolom

Menyortir kueri SQL bisa menjadi lebih canggih. Adalah umum untuk mengurutkan data berdasarkan dua atau lebih kolom, yang mungkin sudah Anda kenal sebagai pengguna Excel atau Google Sheets. Hal yang sama dapat dilakukan dalam SQL.

Permintaan

SELECT
  first_name,
  last_name,
  salary
FROM employees
ORDER BY salary DESC, last_name ASC;

 

Penjelasan

Dengan permintaan ini, kami membangun contoh sebelumnya; kami ingin mengurutkan output berdasarkan gaji karyawan dan nama belakang mereka. Kali ini, kami menyortir dengan gaji turun dan kemudian dengan nama belakang naik.

Kami merujuk gaji kolom di ORDER BY dan ikuti dengan kata kunci DESC. Itu DESC kata kunci menunjukkan urutan menurun. Sebelum kriteria pemesanan kedua, kita perlu koma. Setelah itu muncul kriteria / kolom kedua, yaitu last_name dalam hal ini. Anda dapat menambah atau menghilangkan kata kunci ASC untuk mengurutkan output dalam urutan menaik.

Catatan: Urutan kolom di PESANAN OLEH penting! Kueri yang ditulis seperti di atas pertama-tama akan diurutkan berdasarkan gaji turun dan kemudian dengan nama belakang naik. Jika Anda menulis ORDER BY last_name ASC, salary DESC, itu akan diurutkan berdasarkan nama belakang terlebih dahulu dan kemudian dengan gaji dalam urutan menurun.

Keluaran

nama depan nama terakhir gaji
Tom Halaman 5,974.41
Victoria Pollock 4,789.53
Claudia Conte 4,714.12
Luca Pavarotti 4,123.45
Walter Rusa 3,547.25
Paul Garrix 3,547.25
Lucy Patterson 3,547.25
Matthias Johnson 3,009.41
Stephanie Marx 2,894.51
Astrid Rubah 2,845.56

Outputnya dipesan dengan gaji. Ketika gajinya sama (baris hijau), data dipesan berdasarkan abjad dengan nama belakang.

 

9. Memilih Dua Kolom Dengan Kondisi Logis yang Kompleks pada WHERE

Contoh ini akan kembali menunjukkan cara memfilter output menggunakan WHERE. Ini akan sedikit lebih maju kali ini, karena kami akan menggunakan operator logis. Dalam SQL, operator logis memungkinkan Anda untuk menguji apakah kondisi penyaringan benar atau tidak. Mereka juga memungkinkan Anda untuk mengatur beberapa kondisi.

Tiga operator logis dasar dalam SQL adalah DAN, ATAU, dan TIDAK. Dalam permintaan di bawah ini, kami akan menggunakan ATAU untuk mendapatkan gaji di bawah 3.000 atau di atas 5.000.

Query

SELECT
  first_name,
  last_name,
  salary
FROM employees
WHERE salary > 5000 OR salary < 3000;

 

Penjelasan

Kami menggunakan permintaan ini untuk memilih nama depan, nama belakang, dan gaji karyawan dari tabel employees.

Namun, kami hanya ingin menunjukkan kepada karyawan yang gajinya di atas $ 5.000 atau di bawah $ 3.000. Kami melakukannya dengan menggunakan operator logis ATAU dan operator perbandingan di WHERE.

Kami menulis kondisi pertama di WHERE, di mana kami referensi salary kolom dan atur kondisi bahwa nilai harus di atas 5.000. Lalu kita gunakan OR operator, diikuti oleh kondisi kedua. Kondisi kedua kembali merujuk kolom gaji dan menggunakan operator ‘ kurang dari ’ untuk mengembalikan nilai di bawah 3.000.

Keluaran

nama depan nama terakhir gaji
Astrid Rubah 2,845.56
Tom Halaman 5,974.41
Stephanie Marx 2,894.51

Permintaan hanya mengembalikan tiga karyawan dan gaji mereka, karena merekalah satu-satunya yang memenuhi persyaratan.

 

 

10. Komputasi Sederhana pada Kolom

Dalam contoh ini, kami akan menunjukkan bagaimana Anda dapat melakukan operasi matematika sederhana pada kolom tabel.

Kami akan menggunakan salah satu operator aritmatika SQL.

Operator Aritmatika Deskripsi
+ Tambahan
Pengurangan
* Perkalian
/ Divisi
% Modulo, yaitu mengembalikan sisa divisi integer.

Permintaan

SELECT
  employee_id,
  q1_2022 + q2_2022 AS h1_2022
FROM quarterly_sales;

Penjelasan

Dalam kueri di atas, kami ingin menemukan penjualan pada paruh pertama 2022 untuk setiap karyawan.

Kami melakukannya dengan terlebih dahulu memilih kolom employee_id dari meja quarterly_sales.

Lalu kita pilih kolomnya q1_2022 dan gunakan operator aritmatika tambahan untuk menambahkan q2_2022 kolom. Kami juga memberikan kolom baru yang dihitung ini alias h1_2022 menggunakan AS kata kunci.

Keluaran

karyawan_id h1_2022
8 18.260,66
4 18.264,04
10 2,817.18
1 17.181.20
3 37.558,82
2 10.092,45
7 33.695,03
6 11.240,08
5 13.905,29
9 8,586.86

Output menunjukkan semua karyawan ’ ID dan penjualan masing-masing pada paruh pertama 2022.

 

11. Menggunakan SUM ( ) dan GROUP BY

Kueri ini menggunakan fungsi agregat SUM() dengan KELOMPOK OLEH. Dalam SQL, fungsi agregat bekerja pada kelompok data; sebagai contoh, SUM(sales) menunjukkan total semua nilai dalam sales kolom.  Penting untuk mengetahui tentang fungsi ini ketika Anda ingin memasukkan data ke dalam grup dan menunjukkan total untuk setiap grup.

Query

SELECT
  department,
  SUM(salary) AS total_salaries
FROM employees
GROUP BY department;

 

Penjelasan

Tujuan dari permintaan di atas adalah untuk menemukan jumlah total gaji untuk setiap departemen. Ini dicapai dengan cara berikut.

Pertama, pilih departemen kolom dari tabel employees. Lalu, gunakan SUM() fungsi. Karena kami ingin menambahkan nilai gaji, kami menentukan gaji kolom dalam fungsi. Juga, kami memberikan kolom yang dihitung ini alias total_salaries.

Akhirnya, output dikelompokkan oleh departemen kolom.

Catatan: Kolom non-agregat apa pun muncul di PILIHAN juga harus muncul di KELOMPOK OLEHTapi ini logis – seluruh tujuannya adalah untuk mengelompokkan data berdasarkan departemen, jadi tentu saja kami akan memasukkannya GROUP BY.

Keluaran

departemen total_salaries
Perusahaan 21.919,82
Individu Pribadi 17.072,92

Output menunjukkan semua departemen dan jumlah total biaya gaji bulanan menurut departemen.

 

12. Menggunakan COUNT () dan GROUP BY

Berikut kueri SQL dasar lain yang menggunakan fungsi agregat. Kali ini COUNT(). Anda dapat menggunakannya jika Anda ingin mengelompokkan data dan menunjukkan jumlah kejadian di setiap grup.

Query

SELECT
  department,
  COUNT(*) AS employees_by_department
FROM employees
GROUP BY department;

 

Penjelasan

Kami ingin menunjukkan jumlah karyawan berdasarkan departemen.

Pilih departemen dari tabel employees. Lalu, gunakan COUNT() fungsi agregat. Dalam hal ini, kami menggunakan COUNT(*) versi, yang menghitung semua baris. Kami memberikan kolom alias employees_by_department.

Sebagai langkah terakhir, kami mengelompokkan output oleh departemen.

Catatan: menghitung semua baris, termasuk yang dengan nilai-nilai. Jika Anda tidak ingin memasukkan nilai NULL yang mungkin dalam output Anda, gunakan versi fungsi. Kita bisa menggunakan di sini karena kita tahu tidak nilai ada di tabel.COUNT(*)NULLCOUNT(column_name)COUNT(*)NULL

Keluaran

departemen karyawan_by_department
Perusahaan 5
Individu Pribadi 5

Ada dua departemen, masing-masing dengan lima karyawan.

 

 

13. Menggunakan AVG () dan GROUP BY

Itu AVG() fungsi menghitung nilai rata-rata. Anda dapat menggunakan kueri ini kapan pun Anda ingin mengelompokkan data dan menunjukkan nilai rata-rata untuk setiap grup.

Query

SELECT
  department,
  AVG(salary) AS average_salary
FROM employees
GROUP BY department;

 

Penjelasan

Permintaannya sama dengan yang terakhir, hanya saja kali ini kami menggunakan kueri AVG() berfungsi, karena kami ingin menghitung gaji rata-rata menurut departemen.

Kami memilih departemen, gunakan AVG() dengan salary kolom, dan kelompokkan output berdasarkan departemen.

Keluaran

departemen rata-rata gaji
Perusahaan 4,383.96
Individu Pribadi 3,414.58

Output menunjukkan dua departemen dan gaji rata-rata mereka.

 

 

14. Menggunakan MIN () dan GROUP BY

Ini adalah kueri lain yang menggabungkan fungsi agregat dengan GROUP BY. Gunakan kapan pun Anda ingin menemukan nilai minimum untuk setiap grup.

Query

SELECT
  department,
  MIN(salary) AS minimum_salary
FROM employees
GROUP BY department;

 

Penjelasan

Sekali lagi, kami menggunakan kueri yang sama dan hanya mengubah fungsi agregat.

Kueri menghitung gaji minimum menurut departemen.

Keluaran

departemen minimum_salary
Perusahaan 2,894.51
Individu Pribadi 2,845.56

Output menunjukkan departemen dan gaji terendah di setiap departemen.

 

 

15. Menggunakan MAX () dan GROUP BY

Contoh ini menunjukkan cara menggunakan MAX() fungsi agregat untuk menunjukkan nilai tertinggi dalam setiap grup.

Query

SELECT
  department,
  MAX(salary) AS maximum_salary
FROM employees
GROUP BY department;

 

Penjelasan

Kami menggunakan kueri untuk menunjukkan gaji tertinggi di setiap departemen, bersama dengan nama departemen.

Anda sudah tahu cara kerjanya. Kueri sama dengan contoh sebelumnya, tetapi sekarang menggunakan MAX() fungsi.

Keluaran

departemen max_salary
Perusahaan 5,974.41
Individu Pribadi 4,123.45

Outputnya menunjukkan kepada kita gaji tertinggi di departemen Corporate and Private Individuals.

 

 

16. Menggunakan SUM (), WHERE, dan GROUP BY

Yang ini mungkin tampak lebih rumit, tetapi masih merupakan kueri SQL dasar. Ini digunakan ketika Anda ingin menunjukkan nilai total untuk setiap grup tetapi Anda hanya ingin memasukkan baris tertentu dalam jumlah.

Query

SELECT
  department,
  SUM(salary) AS total_salary
FROM employees
WHERE salary > 3500
GROUP BY department;

 

Penjelasan

Kueri akan menunjukkan total gaji menurut departemen, tetapi hanya akan mencakup gaji individu di atas $ 3.500 dalam jumlah. Begini cara kerjanya.

Pertama, tentu saja, pilih departemen dan gunakan SUM() dengan kolom gaji dari tabel employees. Anda sudah mempelajarinya.

Kemudian gunakan WHERE klausa untuk menentukan nilai yang ingin Anda sertakan dalam jumlah. Dalam hal ini, di situlah gaji kolom lebih tinggi dari 3.500. Dengan kata lain, kueri sekarang hanya akan berjumlah nilai di atas 3.500.

Akhirnya, kelompok demi departemen.

Keluaran

departemen total_salary
Individu Pribadi 11.217,95
Perusahaan 19.025,31

Total ini sekarang hanya mencakup gaji di atas $ 3.500. Bandingkan ini dengan output dari contoh kesebelas (ditunjukkan di bawah; pikirkan penyortiran yang berbeda), dan Anda akan melihat bahwa totalnya lebih rendah. Ini logis, karena output di bawah ini juga mencakup gaji yang sama dengan atau kurang dari $ 3.500.

departemen total_salaries
Perusahaan 21.919,82
Individu Pribadi 17.072,92

17. Menggunakan COUNT (), WHERE, dan GROUP BY

Ini juga salah satu pertanyaan yang kami sarankan untuk Anda sertakan di kotak alat SQL Anda. Ini mirip dengan yang sebelumnya, karena menggunakan fungsi agregat. Jenis kueri ini dapat digunakan ketika Anda ingin menunjukkan jumlah kejadian untuk setiap grup.

Query

SELECT
  department,
  COUNT(*) AS number_of_employees
FROM employees
WHERE salary > 3500
GROUP BY department;

 

Penjelasan

Ini mirip dengan kueri sebelumnya, hanya menggunakan COUNT() fungsi agregat. Tujuannya adalah untuk menunjukkan nama departemen dan jumlah karyawan di departemen itu, tetapi hanya menghitung karyawan dengan gaji di atas $ 3.500.

Untuk mencapai itu, pertama pilih departemen. Kemudian gunakan COUNT(*) untuk menghitung semua baris dalam setiap departemen. Setiap baris sama dengan satu karyawan. Kami bebas menggunakan versi ini COUNT() berfungsi karena kita tahu tidak ada NULL baris.

Sekarang, gunakan WHERE untuk memasukkan hanya karyawan dengan gaji lebih tinggi dari $ 3500 dalam penghitungan.

Pada akhirnya, Anda hanya perlu mengelompokkan data berdasarkan departemen.

Keluaran

departemen number_of_employees
Individu Pribadi 3
Perusahaan 4

Outputnya menunjukkan ada tiga karyawan di departemen Individu Pribadi yang dibayar di atas $ 3.500 dan ada empat karyawan di departemen Korporat.

Beberapa karyawan jelas hilang, sebagaimana mestinya. Kami belajar di salah satu contoh sebelumnya bahwa ada lima karyawan di setiap departemen.

 

18. Mengakses Data dalam Dua Tabel Menggunakan INNERJOIN

Jenis kueri ini digunakan kapan pun Anda ingin mengakses data dari dua tabel atau lebih. Kami akan menunjukkan kepada Anda INNERJOIN, tapi itu bukan satu-satunya jenis gabungan yang dapat Anda gunakan.

Berikut ini adalah ikhtisar singkat tentang tipe gabungan di SQL. Ini adalah nama gabungan lengkap. Apa yang ditampilkan dalam tanda kurung dapat dihilangkan dalam kueri dan sambungan akan bekerja tanpanya.

Jenis Gabung SQL Deskripsi
(INNER) JOIN Mengembalikan nilai yang cocok dari kedua tabel.
LEFT (OUTER) JOIN Mengembalikan semua nilai dari tabel kiri dan hanya nilai yang cocok dari tabel kanan.
RIGHT (OUTER) JOIN Mengembalikan semua nilai dari tabel kanan dan hanya nilai yang cocok dari tabel kiri.
FULL (OUTER) JOIN Mengembalikan semua baris dari kedua tabel.
CROSS JOIN Mengembalikan semua kombinasi semua baris dari tabel pertama dan kedua, yaitu produk Cartesian.

Query

SELECT
  e.id,
  e.first_name,
  e.last_name,
  qs.q1_2022 + qs.q2_2022 + qs.q3_2022 + qs.q4_2022 AS total_sales_2022
FROM employees e
JOIN quarterly_sales qs
ON e.id = qs.employee_id;

Penjelasan

Permintaan ini ingin menunjukkan ID dan nama setiap karyawan, bersama dengan total penjualan mereka pada tahun 2022.

Untuk itu, ia menggunakan JOIN, karena data yang diperlukan ada di kedua tabel dataset kami.

Mari kita mulai menjelaskan kueri dengan FROM klausa. Ini sudah biasa: menggunakan data dari tabel employees, Anda perlu referensi di FROM. Kami juga memberikan tabel ini alias (‘ e ’), sehingga kami tidak harus menulis nama lengkap tabel nanti.

Setelah itu, kami menggunakan JOIN kata kunci untuk bergabung dengan tabel kedua. Kami melakukannya dengan merujuk tabel quarterly_sales di JOIN dan memberinya alias ‘ qs ’.

Sekarang tiba ON kondisi. Ini digunakan untuk menentukan kolom di mana dua tabel akan bergabung. Biasanya, itu adalah kolom yang menyimpan data yang sama di kedua tabel. Dengan kata lain, kami bergabung dengan tabel pada kunci utama dan asing. Kunci utama adalah kolom (atau kolom) yang secara unik mendefinisikan setiap baris dalam tabel. Kunci asing adalah kolom di tabel kedua yang merujuk ke tabel pertama. Dalam contoh kita, kolom id dari meja employees adalah kunci utamanya. Kolom employee_id dari meja quarterly_sales adalah kunci asing, karena berisi nilai kolom id dari tabel pertama.

Jadi kami akan menggunakan kolom ini di ON, tetapi kita juga perlu menentukan dari tabel mana setiap kolom berasal. Ingat, kami memberikan alias tabel kami. Ini akan berguna di sini, karena kita tidak perlu menulis tabel ’ nama lengkap – hanya satu huruf untuk setiap tabel. Kami menulis alias tabel pertama (bukan nama lengkapnya), pisahkan dengan titik, dan kemudian nama kolom. Kami menempatkan tanda yang sama, alias tabel kedua, dan nama kolom.

Sekarang kami memiliki dua tabel yang digabungkan, kami bebas memilih kolom apa saja dari kedua tabel.  Kami memilih idfirst_name, dan last_name dari employees. Kemudian kami menambahkan setiap kolom dari tabel triwulanan menunjukkan penjualan triwulanan dan beri nama total_sales_2022. Setiap kolom di SELECT juga memiliki alias tabel sebelumnya, dengan alias dan nama kolom dipisahkan oleh titik.

Catatan: Saat bergabung dengan tabel, gunakan nama tabel di depan nama kolom di disarankan. Ini akan membuatnya lebih mudah untuk menentukan kolom mana yang berasal dari tabel mana. Juga, tabel dapat memiliki kolom dengan nama yang sama. Namun, nama tabel bisa menjadi bertele-tele, jadi beri mereka alias juga disarankan. Dengan begitu, Anda dapat menggunakan alias yang jauh lebih pendek (bukan nama tabel lengkap) di depan nama kolom.SELECTJOIN

Keluaran

id nama depan nama terakhir total_sales_2022
8 Stephanie Marx 22.993,23
4 Lucy Patterson 30.595,57
10 Victoria Pollock 6,770.16
1 Paul Garrix 45.443,38
3 Matthias Johnson 58.233,67
2 Astrid Rubah 20.312,48
7 Walter Rusa 62.774,59
6 Claudia Conte 17.734,94
5 Tom Halaman 28.637,65
9 Luca Pavarotti 25.023.21

Outputnya mencantumkan setiap karyawan dan menunjukkan total penjualan mereka pada tahun 2022.

 

19. Mengakses Data dalam Dua Tabel Menggunakan INNERJOIN dan Memfilter Menggunakan WHERE

Tentu saja, Anda dapat memfilter data dalam tabel gabungan dengan cara yang sama seperti yang Anda bisa dengan hanya satu tabel. Anda akan membutuhkan lagi WHERE klausa.

Query

SELECT
  e.id,
  e.first_name,
  e.last_name,
  qs.q4_2022-qs.q3_2022 AS sales_change
FROM employees e
JOIN quarterly_sales qs
ON e.id = qs.employee_id
WHERE qs.q4_2022-qs.q3_2022 < 0;

Penjelasan

Kami mengubah kueri sebelumnya untuk menunjukkan penurunan penjualan antara kuartal ketiga dan keempat.

Begini cara kami melakukannya. Seperti yang kami lakukan sebelumnya, kami memilih ID dan nama karyawan.

Kami mengurangi seperempat dari yang lain untuk menghitung perubahan antara kuartal. Dalam hal ini, itu adalah kolom dengan penjualan kuartal keempat dikurangi penjualan kuartal ketiga. Kolom baru ini bernama sales_change.

Tabel-tabel tersebut digabungkan dengan cara yang persis sama seperti pada contoh sebelumnya.

Untuk menunjukkan hanya penurunan penjualan, kami menggunakan WHERE klausa. Di dalamnya, kami kembali mengurangi kuartal ketiga dari keempat dan menetapkan kondisi bahwa hasilnya harus di bawah nol, yaitu penurunan. Seperti yang Anda perhatikan, WHERE datang setelah tabel bergabung.

Keluaran

id nama depan nama terakhir sales_change
8 Stephanie Marx -2,224.11
4 Lucy Patterson -5,151.55
1 Paul Garrix -21.233,46
3 Matthias Johnson -3,771.83
7 Walter Rusa -189,32
6 Claudia Conte -1,500.44
9 Luca Pavarotti -1,138.55

Output menunjukkan semua karyawan yang mengalami penurunan penjualan pada kuartal terakhir dan jumlah penurunan itu.

 

20. Mengakses Data dalam Dua Tabel Menggunakan INNERJOIN, Memfilter Menggunakan WHERE, dan Menyortir Dengan ORDER BY

Anda mungkin memperhatikan bahwa output dalam dua contoh terbaru kami diurutkan sedikit secara acak. Ini bukan sesuatu yang harus Anda tahan dengan – Anda dapat memesan data ORDER BY bahkan ketika menggunakan dua tabel.

Query

SELECT
  e.id,
  e.first_name,
  e.last_name,
  qs.q4_2022
FROM employees e
JOIN quarterly_sales qs
ON e.id = qs.employee_id
WHERE qs.q4_2022 > 5000
ORDER BY qs.q4_2022 DESC;

Penjelasan

Kueri tidak jauh berbeda dari yang sebelumnya. Kami kembali memilih ID dan nama karyawan. Kami juga menambahkan penjualan pada kuartal terakhir tahun ini. Tabel kemudian bergabung dengan cara yang sama seperti sebelumnya. Kami menggunakan WHERE klausa untuk menunjukkan hanya penjualan triwulanan di atas $ 5.000.

Kami juga ingin mengurutkan output. Ini tidak berbeda dengan apa yang kami pelajari sebelumnya: cukup tulis nama kolom di ORDER BY dan urutkan sesuai keinginan Anda. Dalam contoh kami, kami memilah dari penjualan triwulanan tertinggi ke terendah.

Keluaran

id nama depan nama terakhir q4_2022
7 Walter Rusa 14.445,12
3 Matthias Johnson 8,451.51
5 Tom Halaman 7,788.01
9 Luca Pavarotti 7,648.90
2 Astrid Rubah 5,322.05

Output menunjukkan semua lima karyawan yang penjualannya di atas $ 5.000 dalam tiga bulan terakhir tahun 2022.

 

 

Sumber : https://learnsql.com/blog/basic-sql-query-examples/

Leave a Reply