Database

[mysql]연령별 카운트 구하기

컨텐츠 정보

본문

이런건 안해봐서 아리까리 했는데..

select (substring(substring(now(),1,4)-concat(ceiling(substring(ResRegNum2,1,1)/2)+18,substring(ResRegNum1,1,2)),1,1)*10) as age,count(ID) from member group by age;

년도 상관없습니다.

 
 

 
 망나니햌어 ResRegNum1 주민번호 첫 6자리
ResRegNum2 주민번호 두 7자리
 08/28 19:01:23 
 
 음 망나니님 ... 해석좀 해주세요
 08/28 19:03:23 
 
 망나니햌어 그러니까 뭐냐 하면
ceiling(substring(ResRegNum2,1,1)/2)+18
이부분에서 먼저 주민번호 7자리 중에서 첫번째 1자리를 가져 옵니다..왜냐 하면 이게 1900년에 태어 낫는지 그 이후에 태어 낫는지 알수 있는 키가 되기 때문이죠.그리고 그걸 2로 나눈 몫을 무조건 올려주면 정수가 나오는데 이거 에다가 18 을 더해 주면 몇년도에 태어 났는지 알수가 있게 되는겁니다..한번 자기 주민번호 가지고 계산 해보시길...
substring(ResRegNum1,1,2)
이걸로 이제 나머지 년도를 구해서 concat로 더해 주면 정말 그 사람이 태어난 년도가 나오게 되겠죠...여기까진 태어난 년도 계산이고...
substring(now(),1,4)
이건 지금 년도 얻어오고 아까 그년도를 뺀다음에 다시 앞의 글자 하나 가져 와서 10을 곱하면 비로소 연령대가 나오게 되는겁니다..헥헥.. 08/28 19:12:38 
 
 음 굳입니다!!!
아주 많은 도움이 되었습니다!! 08/28 19:31:00 
 
 음 회원 100만 이상은 힘들겠네요. 그럴땐 연령별 조회 테이블을 따로 구성하시고 입력시마다 업데이트하고 매년초에 전체적으로 업데이트 한번 해주면 됩니다.

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
살아 있는 동안 더 많이 감탄하세요. 가슴을 열고 보면 어디 감탄할 거리가 한두 가지입니까. 감탄할 거리가 있을때가 참을 것이 아니라 즉각 감탄해야 합니다. 가슴 두근거리고 놀라고 환호할때 우리의 행복은 곱으로 느껴집니다. (정채봉)