본문 바로가기

Story/mysql

주민등록 번호로 나이,나이대 구하기

반응형

- 나이 구하기 (jumin_no:주민등록 번호 000000-0000000 형식)

select
    year(now()) - (if (mid(jumin_no, 8, 1) = '1' or mid(jumin_no, 8, 1) = '2', 1900, 2000) +left(jumin_no, 2)) + 1 as age
from member

- 나이대 구하기 (jumin_no:주민등록 번호 000000-0000000 형식)

select
    age,
    count(age) as cnt
from
(
    select
        floor((year(now()) - (if (mid(jumin_no, 8, 1) = '1' or mid(jumin_no, 8, 1) = '2', 1900, 2000) +left(jumin_no, 2)) + 1)/10)*10 as age
    from member
) as t
group by age

주민등록 번호 뒤의 첫번째 숫자가 1,2 이면 1900년대 생으로 보고 그렇지 않으면 2000년대생으로 본다.
하지만 그외의 경우도 있는대 (외국인이 국적을 취득한경우등..) 그런 경우는 고려하지 않았다.
반응형