SQL Project Planning

  • + 0 comments

    WITH CTE AS( SELECT *, COALESCE(LAG(End_Date,1) OVER(ORDER BY Start_Date),Start_Date) AS PED FROM Projects ), CTE1 AS( SELECT Start_Date, End_Date, SUM(CASE WHEN Start_Date = PED THEN 0 ELSE 1 END) OVER(ORDER BY Start_Date) AS grouping FROM CTE ), CTE2 AS( SELECT
    *, COUNT(grouping) OVER(PARTITION BY grouping) AS cnt FROM CTE1 ) SELECT MIN(Start_Date) As Proj_Start_Date, MAX(End_Date) AS Proj_End_Date FROM CTE2 GROUP BY grouping,cnt ORDER BY cnt ASC, Proj_Start_Date