Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Memfilter Catatan dengan Fungsi Agregat SUM

Masalah:

Anda perlu menemukan baris di mana grup memiliki jumlah nilai dalam satu kolom kurang dari nilai yang diberikan.

Contoh:

Basis data kami memiliki tabel bernama company dengan data pada kolom berikut:id , department , first_name , last_name , dan salary .

id departemen nama_depan nama_belakang gaji
1 pemasaran Lora Coklat 2300
2 keuangan John Jackson 3200
3 pemasaran Michael Thomson 1270
4 produksi Tony Miller 6500
5 produksi Sally Hijau 2500
6 keuangan Olivier Hitam 3450
7 produksi Jeniffer Michelin 2800
8 pemasaran Jeremy Lorson 3600
9 pemasaran Louis Smith 4200

Mari kita cari nama departemen yang memiliki jumlah gaji karyawan kurang dari 7000.

Solusi:

SELECT department, SUM(salary)
FROM company
GROUP BY department
HAVING SUM(salary)<7000;

Ini hasilnya:

departemen jumlah
keuangan 6550

Diskusi:

Untuk memfilter record menggunakan fungsi agregat (fungsi SUM dari sebelumnya), gunakan klausa HAVING. Untuk menghitung jumlah nilai untuk setiap grup baris, gunakan fungsi SUM agregasi. Dalam kueri ini, departemen kolom dihitung dengan jumlah semua gaji karyawannya sebagai grup (hitung dengan fungsi SUM dengan kolom gaji sebagai argumen). Karena Anda menghitung nilai untuk setiap grup baris (kami mengelompokkan baris menurut nama departemen), kueri memiliki klausa GROUP BY dengan nama kolom untuk mengelompokkan baris (dalam contoh kami, GROUP BY department ). Langkah terakhir adalah menggunakan fungsi agregat dalam klausa HAVING. Ingat, HAVING harus diletakkan setelah klausa GROUP BY. HAVING berisi kondisi yang membandingkan nilai yang dikembalikan oleh fungsi agregat dengan nilai yang diberikan. Dari atas, itu adalah jumlah gaji dengan nilai kurang dari 7000 (SUM(salary)<7000 ). Di sini, kami memverifikasi jumlah gaji di setiap departemen lebih rendah dari 7000. Kueri yang ditampilkan hanya satu departemen, keuangan, dengan gaji 6550.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyesuaikan Pasokan Dengan Permintaan — Solusi, Bagian 1

  2. Memodelkan Struktur Data Dasar untuk Mengelola Pengguna, Utas, dan Posting

  3. Fungsi jendela bersarang di SQL

  4. Meminimalkan dampak pelebaran kolom IDENTITAS – bagian 1

  5. Apakah Kunci Kandidat dalam Desain Basis Data?