Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:SUMA kolumny na podstawie wartości innej kolumny

Musisz użyć agregacji warunkowej, aby zsumować różne leave_hours osobno:

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

Wyjście:

employee_id ot      leave_1     leave_2
3           2.3     7.6         5

Demo na dbfiddle

Pamiętaj, że jeśli używasz liczb zmiennoprzecinkowych do przechowywania godzin, może być konieczne wykonanie ROUND wyniki.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liczenie z warunkami

  2. Odległość Hamminga na ciągach binarnych w SQL

  3. Bezpieczeństwo wątków w MySQL's Select Last_Insert_ID

  4. Jak napisać skrypt w pliku php, aby wyświetlić obraz, taki jak <img src=/img.php?imageID=32 />?

  5. PDO:nie można znaleźć sterownika php/mysql