如何在标准sql92或mysql中合并表

如何在标准sql92或mysql中合并表,mysql,sql,merge,Mysql,Sql,Merge,假设我在一个表中有以下集合: 舞虻 开始时间 结束时间 1. 8. 9 1. 9 10 1. 11 12 1. 12 13 1. 13 14 1. 14 15 这是一种缺口和孤岛问题。在这种情况下,您可以使用lag查看“孤岛”的起始位置,然后使用累积和在孤岛内分配相同的数字并进行聚合: select empid, min(start_time), max(end_time) from (select t.*, sum(case when prev_end_time =

假设我在一个表中有以下集合:

舞虻 开始时间 结束时间 1. 8. 9 1. 9 10 1. 11 12 1. 12 13 1. 13 14 1. 14 15
这是一种缺口和孤岛问题。在这种情况下,您可以使用lag查看“孤岛”的起始位置,然后使用累积和在孤岛内分配相同的数字并进行聚合:

select empid, min(start_time), max(end_time)
from (select t.*,
             sum(case when prev_end_time = start_time then 0 else 1 end) over (partition by empid order by start_time) as island
      from (select t.*,
                   lag(end_time) over (partition by empid order by start_time) as prev_end_time
            from t
           ) t
     ) t
group by empid, island;
他是一把小提琴