mysql

[스크랩] ▣ [MySQL] 주민번호로 성별 통계 산출

네모세모네모 2012. 5. 9. 17:57
SELECT grade,
      format(sum(if(mid(jumin,8,1) ='1',1,0)),0) as 'male',
      format(sum(if(mid(jumin,8,1) ='2',1,0)),0) as 'female'
FROM member GROUP BY grade

주민번호를 이용하여 남자/여자별 통계를 구하는 sql 문장입니다.
위 문장은 grade 별 남여 통계를 구해 줍니다.
format(), sum(), mid() 함수가 다양하게 사용되었습니다.

여기서 한 가지 주의할 사항이 있습니다.
client 에서 결과 데이타를 처리할 때의 주의사항입니다.
위의 쿼리문을 실행하면 결과는 숫자로 보이지만 문자형식입니다.
결과가 1000 이상일 때 세자리마다 콤마가 찍히는 것을 확인해 보시면
알 수 있습니다.

따라서 단순히 숫자로 받고자 할 때에는 다음과 같이 합니다.
format() 함수를 사용하지 않는 것입니다.

SELECT grade,
     sum(if(mid(jumin,8,1) ='1',1,0)) as 'male',
     sum(if(mid(jumin,8,1) ='2',1,0)) as 'female'
FROM member GROUP BY grade

출처 : SQL with neXPice
글쓴이 : database 원글보기
메모 :