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

MySQLで重複する日時範囲の合計量

    SELECT
      COUNT(*) as occurrence
      , sub.event_id
      , SEC_TO_TIME(SUM(LEAST(e1end, e2end) - GREATEST(e1start, e2start)))) as duration
    FROM
      (  SELECT  
          , e1.event_id
          , UNIX_TIMESTAMP(e1.starttime) as e1start
          , UNIX_TIMESTAMP(e1.endtime) as e1end
          , UNIX_TIMESTAMP(e2.starttime) as e2start
          , UNIX_TIMESTAMP(e2.endtime) as e2end
        FROM events e1
        INNER JOIN events e2 
          ON (e1.eventtype = e2.eventtype AND e1.id <> e2.id
          AND NOT(e1.starttime > e2.endtime OR e1.endtime < e2.starttime))
      ) sub
    GROUP BY sub.event_id 
    ORDER BY occurrence DESC
    



    1. GI12.1.0.2とセグメンテーション違反をコンパイルできません

    2. 更新参加時のエラー

    3. PostgreSQLのレコード変数の列名を動的に渡す

    4. 複数の結果を単一の配列に配置します