Cara Menggunakan MySQL HAVING Clause Di Mana Jumlahnya Lebih Besar Dari Ambang Batas

Cara Menggunakan Mysql Having Clause Di Mana Jumlahnya Lebih Besar Dari Ambang Batas



Saat bekerja dengan database MySQL, Anda akan sering memiliki contoh di mana Anda ingin memfilter nilainya. Meskipun Anda dapat menggunakan klausa WHERE, ini tidak selalu berfungsi untuk semua contoh. Klausa HAVING digunakan saat Anda ingin menjalankan kueri filter menggunakan fungsi agregat dan menerapkan pengelompokan.

Klausa HAVING bergantung pada klausa GROUP BY dalam filternya dan mengeksekusi kueri berdasarkan kondisi yang disediakan. Itu membatasi filter berdasarkan kondisi dan hanya mengembalikan grup yang dipilih jika mereka memenuhi kondisi. Kami memiliki contoh penggunaan klausa MySQL HAVING di mana jumlahnya melebihi ambang batas. Dengan begitu, Anda akan menguasai cara menggunakannya di akhir postingan hari ini.







Cara Menggunakan MySQL HAVING Clause Di Mana Jumlahnya Lebih Besar Dari Ambang Batas

Anda menerapkan klausa MySQL HAVING dengan klausa GROUP BY. Sintaksnya adalah sebagai berikut:



PILIH ekspresi1, .. ekspresi_n, fungsi_agregat (ekspresi) DARI nama_tabel GROUP OLEH ekspresi HAVING ;

Anda dapat menggunakan berbagai fungsi agregat termasuk SUM(), COUNT(), MIN(), MAX(), dan AVG(). Perhatikan bahwa setiap ekspresi yang tidak digunakan dengan fungsi agregat harus disebutkan dengan klausa GROUP BY.



Adapun kondisinya, ini diterapkan pada hasil agregat di mana Anda menentukan ambang batas yang ingin Anda periksa dengan kondisi tersebut. Misalnya, Anda dapat menerapkan fungsi SUM() dan memverifikasi apakah ekspresi memenuhi ambang batas 10. Kami akan memahaminya lebih lanjut dalam contoh yang diberikan.





Untuk memahami cara kerja klausa HAVING, mari buat database sampel yang akan kita kerjakan. Kami menamai basis data kami sebagai 'daftar'.



Mari kita juga membuat tabel bernama 'pekerja' untuk memuat berbagai kolom dan tipe data kita. Di sini, kami bekerja dengan data pekerja seperti nama, jam kerja, tanggal kerja, dll.

Dengan memeriksa deskripsi tabel kami, kami dapat mengonfirmasi bahwa semua kolom berhasil dibuat.

Kami memasukkan nilai ke dalam tabel kami. Kami memiliki pekerja yang berbeda yang bekerja di jam dan hari yang berbeda. Dengan menggunakan data ini, kita dapat menerapkan klausa HAVING di mana jumlahnya melebihi ambang batas.

Untuk contoh pertama kita, mari pertimbangkan kasus di mana kita ingin menemukan pekerja yang bekerja paling lama. Untuk klausa HAVING, sertakan fungsi jumlah agregat untuk jam. Dalam klausa GROUP BY, kami mengelompokkan baris menggunakan baris nama untuk membantu mengklasifikasikan pekerja dengan total jam yang lebih besar dari ambang batas.

Jika kami memiliki ambang untuk total jam sebagai 7, kami menjalankan perintah kami sebagai berikut:

PILIH nama, JUMLAH(jam) SEBAGAI total_jam_per_orang DARI KELOMPOK pekerja BERDASARKAN nama MEMILIKI jumlah(jam) > 7;

Dengan mengeksekusi perintah, kita mendapatkan output yang berisi dua baris karena hanya dua pekerja yang melebihi ambang batas yang ditentukan dalam klausa HAVING.

Misalkan kita ingin mengklasifikasikan departemen untuk melihat departemen dengan pekerja yang bekerja dalam jam kerja lebih dari ambang batas 7 jam. Kami memilih departemen, lalu menggunakan fungsi agregat SUM dengan jam dan mengelompokkan baris menggunakan ekspresi departemen.

Perintah kami adalah sebagai berikut:

SELECT department, SUM(hours) AS total_hours_per_department DARI pekerja GROUP BY department HAVING sum(hours) > 7;

Dari hasil, kami dapat memverifikasi bahwa kami berhasil memfilter baris agar hanya menyisakan baris dengan jumlah jam lebih besar dari ambang batas kami.

Demikian pula, jika kami ingin memfilter tanggal kerja dengan jumlah pekerja kerja tertinggi melebihi ambang batas 10 jam, kami memilih ekspresi tanggal kerja. Kemudian, kami menggunakan fungsi SUM dengan jam dan mengelompokkan baris menggunakan tanggal kerja.

Perintahnya adalah sebagai berikut:

PILIH tanggal kerja, JUMLAH(jam) SEBAGAI jam_tertinggi_dikerjakan DARI KELOMPOK pekerja BERDASARKAN tanggal kerja MEMILIKI jumlah(jam) > 10;

Setelah menjalankan perintah, hasilnya menunjukkan bahwa hanya satu tanggal kerja yang jumlah total jamnya melebihi ambang batas:

Kesimpulan

Klausa MySQL HAVING digunakan saat Anda ingin mengeksekusi kueri filter menggunakan fungsi agregat. Ini digabungkan dengan klausa GROUP BY untuk mengeksekusi kueri yang lebih spesifik. Posting ini merinci segala sesuatu tentang klausa MySQL HAVING di mana jumlahnya lebih besar dari ambang batas. Dengan contoh yang diberikan, Anda sekarang mengerti cara bekerja dengan klausa MySQL HAVING.