[Mysql] 최근 근로내역가져오기
SELECT
employee_key,
hyunjang_key,
MIN(month) AS start_month,
MAX(month) AS end_month,
COUNT(*) AS consecutive_months
FROM (
SELECT
employee_key,
hyunjang_key,
month,
DATEDIFF(month, '2000-01-01') - ROW_NUMBER() OVER (PARTITION BY employee_key, hyunjang_key ORDER BY month) AS grp
FROM
kongsu
WHERE
employee_key = '3660'
AND delete_YN = '0'
) AS subquery
GROUP BY
employee_key,
hyunjang_key,
grp
ORDER BY
employee_key,
hyunjang_key,
start_month;
해석
select
hyunjang_key, employee_key ,ROW_NUMBER() OVER (PARTITION BY employee_key, hyunjang_key ORDER BY DATE_FORMAT(month, '%Y-%m')) as grp
from kongsu where employee_key ='3658' and delete_YN = '0'
아래과같이 hyunjang_key, employee_key 로 묶어서 그룹핑한다.현장별, 일한달을 그룹핑한다.



