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. PostgreSQLで2つのスキーマを比較する方法

    2. SCOPE_IDENTITY()を使用して、同じスコープで最後に挿入されたID値を返します(SQL Server)

    3. 削除クエリに大きなテーブルがあるIN句のサブクエリのパフォーマンス

    4. 関数str_to_dateの日時の値が正しくないためにmysqlテーブルを作成できません...