Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:SUM kolom berdasarkan nilai kolom lain

Anda perlu menggunakan agregasi bersyarat untuk menjumlahkan leave_hours . yang berbeda terpisah:

SELECT employee_id, 
       SUM(overtime_hours) AS ot, 
       SUM(CASE WHEN leave_type = 1 THEN leave_hours ELSE 0 END) AS leave_1, 
       SUM(CASE WHEN leave_type = 2 THEN leave_hours ELSE 0 END) AS leave_2
FROM `table`
GROUP BY employee_id

Keluaran:

employee_id ot      leave_1     leave_2
3           2.3     7.6         5

Demo di dbfiddle

Perhatikan bahwa jika Anda menggunakan angka floating point untuk menyimpan jam, Anda mungkin perlu ROUND hasilnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Modal tidak memuat menggunakan javascript di php (CodeIgniter)

  2. Cara Menghapus MySQL Dari Ubuntu Sepenuhnya

  3. MySQL ISNULL () Dijelaskan

  4. Laravel 5:Pelanggaran batasan integritas:1452 Tidak dapat menambah atau memperbarui baris anak:batasan kunci asing gagal

  5. Ubah Tanggal menjadi Format Tanggal MYSQL