We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- SQL
- Advanced Join
- SQL Project Planning
- Discussions
SQL Project Planning
SQL Project Planning
Sort by
recency
|
1547 Discussions
|
Please Login in order to post a comment
WITH temp AS ( SELECT task_id, start_date, end_date, end_date - ROW_NUMBER() OVER (ORDER BY end_date) AS group_id FROM projects ), t2 AS ( SELECT MIN(start_date) OVER(PARTITION BY group_id) AS min_date, MAX(end_date) OVER(PARTITION BY group_id) AS max_date FROM temp ) SELECT DISTINCT(min_date), max_date FROM t2 ORDER BY max_date - min_date ASC;
WITH cte1 AS ( SELECT start_date, ROW_NUMBER() OVER (ORDER BY start_date) AS rn1 FROM projects WHERE start_date NOT IN ( SELECT end_date FROM projects ) ), cte2 AS ( SELECT end_date, ROW_NUMBER() OVER (ORDER BY start_date) AS rn2 FROM projects WHERE end_date NOT IN ( SELECT start_date FROM projects ) ) SELECT cte1.start_date, cte2.end_date FROM cte1 JOIN cte2 ON cte1.rn1 = cte2.rn2 ORDER BY DATEDIFF(cte2.end_date, cte1.start_date) ASC, cte1.start_date;
SELECT MIN(Start_Date) AS project_start, MAX(End_Date) AS project_end FROM ( SELECT *, DATE_SUB(Start_Date, INTERVAL ROW_NUMBER() OVER (ORDER BY Start_Date) DAY) AS grp FROM Projects ) t GROUP BY grp ORDER BY DATEDIFF(MAX(End_Date), MIN(Start_Date)), MIN(Start_Date);