Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:SUM của một cột dựa trên giá trị của một cột khác

Bạn cần sử dụng tính năng tổng hợp có điều kiện để tính tổng các leave_hours khác nhau riêng:

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

Đầu ra:

employee_id ot      leave_1     leave_2
3           2.3     7.6         5

Demo trên dbfiddle

Lưu ý rằng nếu bạn sử dụng số dấu phẩy động để lưu trữ giờ, bạn có thể cần phải ROUND kết quả.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL InnoDB khóa chết khi CHỌN với khóa độc quyền (CHO CẬP NHẬT)

  2. thiết lập phiên bản cơ sở dữ liệu đích để di chuyển bàn làm việc mysql

  3. Cách thiết lập kết nối MySQL từ xa

  4. công việc xóa các hàng cũ hơn 3 tháng trong cơ sở dữ liệu mysql

  5. Lệnh mysql không đồng bộ khi thực hiện chèn từ cần tây