나이대를 구해야 하는데 검색해보면 20대, 30대 이렇게밖에 나오질 않네요..
DB에 19870101, 19970502 이런식으로 저장된 생년월일을 가지고
나이대 | 명
--------------
20-24 | 5
25-29 | 2
30-34 | 6
35-39 | 10
이런식으로 데이터를 추출하려고 하는데 잘 안되네요ㅜㅜ
혹시 방법이 있을까요?
아니면 그냥 테이블을 하나 따로 빼서 데이터를 따로 저장하는게 나을까요
SELECT CONCAT( FLOOR(y / 5) * 5 , '~' , FLOOR(y / 5) * 5 + 4 ) years , COUNT(*) cnt FROM (SELECT FLOOR( ( PERIOD_DIFF(DATE_FORMAT(curdate(), '%Y%m'), LEFT(ymd, 6)) + CASE WHEN DATE_FORMAT(curdate(), '%d') > RIGHT(ymd, 2) THEN 0 ELSE -1 END -- 일자 안지났으면 1개월 차감 ) / 12 ) y -- 만나이 FROM (SELECT 1 idx, '19870101' ymd UNION ALL SELECT 2, 19970502 UNION ALL SELECT 3, 19970528 ) t ) a GROUP BY FLOOR(y / 5) -- 5년 단위 집계 ;
앗 감사합니다!!!!!