Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH base_query AS (
- SELECT
- emp_no,
- start_date,
- end_date,
- DATE_FORMAT(start_date, '%Y') AS cohort, DATEDIFF(end_date, start_date) / 365.25 AS tenure
- FROM dept_emp WHERE start_date BETWEEN '1985-01-01' AND '1995-12-31'
- ),
- grouped_query AS (
- SELECT
- cohort,
- COUNT(emp_no) AS total_employees,
- SUM(IF(tenure >= 1, 1, 0)) AS year_1,
- SUM(IF(tenure >= 2, 1, 0)) AS year_2,
- SUM(IF(tenure >= 3, 1, 0)) AS year_3,
- SUM(IF(tenure >= 4, 1, 0)) AS year_4,
- SUM(IF(tenure >= 5, 1, 0)) AS year_5,
- SUM(IF(tenure >= 6, 1, 0)) AS year_6,
- SUM(IF(tenure >= 7, 1, 0)) AS year_7,
- SUM(IF(tenure >= 8, 1, 0)) AS year_8,
- SUM(IF(tenure >= 9, 1, 0)) AS year_9,
- SUM(IF(tenure >= 10, 1, 0)) AS year_10
- FROM base_query GROUP BY cohort
- )
- SELECT
- cohort,
- total_employees, year_1, year_2, year_3, year_4, year_5, year_6, year_7, year_8, year_9, year_10,
- concat((year_1 / total_employees * 100),'%') AS retention_1,
- concat((year_2 / total_employees * 100),'%') AS retention_2,
- concat((year_3 / total_employees * 100),'%') AS retention_3,
- concat((year_4 / total_employees * 100),'%') AS retention_4,
- concat((year_5 / total_employees * 100),'%') AS retention_5,
- concat((year_6 / total_employees * 100),'%') AS retention_6,
- concat((year_7 / total_employees * 100),'%') AS retention_7,
- concat((year_8 / total_employees * 100),'%') AS retention_8,
- concat((year_9 / total_employees * 100),'%') AS retention_9,
- concat((year_10 / total_employees * 100),'%') AS retention_10
- FROM
- grouped_query
- ORDER BY
- cohort ASC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement