CREATE TABLE Classroom(Classroom VARCHAR(100), CourseName VARCHAR(100), Lesson VARCHAR(100), StartTime VARCHAR(100), EndTime VARCHAR(100)) INSERT INTO Classroom SELECT '1001','Course 1','Lesson 1 ','0800','0900' UNION SELECT '1001','Course 1','Lesson 2 ','0900','1000' UNION SELECT '1001','Course 1','Lesson 3 ','1000','1100' UNION SELECT '1001','Course 2','Lesson 10','1100','1200' UNION SELECT '1001','Course 2','Lesson 11','1200','1300' UNION SELECT '1001','Course 1','Lesson 4 ','1300','1400' UNION SELECT '1001','Course 1','Lesson 5 ','1400','1500' SELECT * FROM Classroom ;WITH CTE_ClassRooms AS ( SELECT *,ROW_NUMBER() over(partition by classroom,CourseName order by StartTime) AS R FROM Classroom A WHERE NOT EXISTS(SELECT 1 FROM Classroom B WHERE B.Classroom = A.Classroom AND B.CourseName = A.CourseName AND B.StartTime = A.EndTime) UNION ALL SELECT B.*,R fROM CTE_ClassRooms A JOIN Classroom B ON B.Classroom = A.Classroom AND B.CourseName = A.CourseName AND A.StartTime = B.EndTime )
source share