Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:СУМА на колона въз основа на стойност на друга колона

Трябва да използвате условно агрегиране, за да сумирате различните leave_hours отделно:

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

Изход:

employee_id ot      leave_1     leave_2
3           2.3     7.6         5

Демо на dbfiddle

Имайте предвид, че ако използвате числа с плаваща запетая за съхраняване на часовете, може да се наложи да ROUND резултатите.



  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 POW() – Повишаване на стойност до степента на друга стойност

  2. Динамична заявка в MySQL

  3. PDOException:SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo неуспешно:Име или услуга не са известни

  4. Автоматично довършване с помощта на Flask, Jquery, Javascript, MySQL

  5. стойност по подразбиране на GUID в за колона в mysql