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만 이상은 힘들겠네요. 그럴땐 연령별 조회 테이블을 따로 구성하시고 입력시마다 업데이트하고 매년초에 전체적으로 업데이트 한번 해주면 됩니다.

관련자료

등록된 댓글이 없습니다.
Today's proverb
미모의 아름다움은 눈만을 즐겁게 하나 상냥한 태도는 영혼을 매료시킨다. (볼테르)