sql >> データベース >  >> RDS >> Mysql

MySQL:グループでTIMEDIFF()をSUM()する方法は?

    使用:

      SELECT t.user_id,       
             SEC_TO_TIME(SUM(TIME_TO_SEC(t.endtime) - TIME_TO_SEC(t.starttime))) AS timediff
        FROM MYTABLE t
    GROUP BY t.user_id
    

    手順:

    1. TIME_TO_SEC 数学演算のためにTIMEを秒に変換するには
    2. 違いを合計する
    3. SEC_TO_TIME 秒をTIMEに戻す

    サンプルデータに基づいて、私はちょうど提案したでしょう:

      SELECT t.user_id,       
             TIMEDIFF(MIN(t.startdate), MAX(t.enddate)) AS timediff
        FROM MYTABLE t
    GROUP BY t.user_id   
    


    1. PostgreSQLでの数値フォーマット用のテンプレートパターンと修飾子

    2. MySQLは、各行に固有の1つのクエリ条件で複数の行を削除します

    3. Coalesce()がSQLiteでどのように機能するか

    4. T-SQLとSQL